Искам да внедря известие, което показва скоростта на интернет в лентата на състоянието на android, също така искам това известие да не може да бъде премахнато от потребителя и само от самото приложение.
Разгледах NotificationCompat.Builder
Api, но не можах да намеря никакъв Api за задаване на текст в лентата на състоянието, който се актуализира редовно.
Знам, че е възможно да внедря тази функция, но не знам как да я приложа.
Намерих приложение, което го прилага много добре, името му е internet speed meter lite
.
Както знаете, тази функция не може да бъде внедрена от setSmallIcon
от NotificationCompat.Builder
.
Сложих изображения за по-добро разбиране.
Скоростта на интернет в лентата на състоянието на android:
Изображение 1
Изображение 2
Известие, което не може да бъде премахнато от потребителя:
Изображение 3
Актуализация:
Това е моят код за известяване, но той не действа, както искам.
Използвах текст на тикер в известието си, за да покажа скорост на потребителя, но не действа, както искам .
public class DownloadSpeedNotification {
private NotificationCompat.Builder mBuilder;
private Context mContext;
private static final int NOTIFICATION_ID = 2;
public DownloadSpeedNotification(Context context) {
mContext = context;
mBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.notification_icon).
setContentText("Download meter content text").
setContentTitle("Download meter content title");
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(pendingIntent);
}
public void alert() {
// Gets an instance of the NotificationManager service
NotificationManager mNotifyMgr =
(NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
// Builds the notification and issues it.
mNotifyMgr.notify(NOTIFICATION_ID, mBuilder.build());
}
public void setSpeed(String speed) {
mBuilder.setTicker(speed);
}
}
И това е код, който използва горния клас, за да уведоми потребителя:
downloadSpeedNotification.setSpeed(Formatter.humanReadableByteCount(rx, true));
downloadSpeedNotification.alert();
Горният код се извиква на всяка 1 секунда.