Текст в лентата на състоянието на известията

Искам да внедря известие, което показва скоростта на интернет в лентата на състоянието на android, също така искам това известие да не може да бъде премахнато от потребителя и само от самото приложение.
Разгледах NotificationCompat.Builder Api, но не можах да намеря никакъв Api за задаване на текст в лентата на състоянието, който се актуализира редовно.
Знам, че е възможно да внедря тази функция, но не знам как да я приложа.
Намерих приложение, което го прилага много добре, името му е internet speed meter lite.
Както знаете, тази функция не може да бъде внедрена от setSmallIcon от NotificationCompat.Builder.
Сложих изображения за по-добро разбиране.
Скоростта на интернет в лентата на състоянието на android:
Изображение 1
Скорост на интернет в лентата на състоянието на 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 секунда.


person taher    schedule 20.04.2015    source източник


Отговори (2)


Опитайте тази..

String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) context
            .getSystemService(ns);
long when = System.currentTimeMillis();

Notification notification = new Notification("your icon", "your ticker text", when);
/*<set your intents here>*/
mNotificationManager.notify(notificationID, notification);

Заменете notificationID с цяло число. Докато изпращате ново известие със същото notificationID, то ще замени старото.

person Lal    schedule 20.04.2015
comment
Имам предвид текста на лентата на състоянието на известията, както е показано на изображенията, прикачени към въпроса, а не текста на известието. С други думи, искам да показвам текст вместо икона на известие в лентата на състоянието. Този текст ще показва скоростта на интернет. Моля, вижте въпросните изображения 1 и 2. - person taher; 20.04.2015
comment
Също така трябва да кажа, че тествах текста на тикер в моето известие, но той не действаше както искам. - person taher; 20.04.2015

Опитахте ли да работите с NotificationManager? http://developer.android.com/reference/android/app/NotificationManager.html

Има метод за уведомяване, можете да го извиквате всеки път, когато имате нужда, например от услуга, която ще търси вашата връзка и ще ви каже как да я промените.

РЕДАКТИРАНЕ 1 Google дори дава добър пример как да работите с мениджъра на известията http://developer.android.com/training/notify-user/managing.html

person k.nadonenko    schedule 20.04.2015
comment
Имам предвид текста на лентата на състоянието на известията, както е показано на изображенията, прикачени към въпроса, а не текста на известието. С други думи, искам да показвам текст вместо икона на известие в лентата на състоянието. Този текст ще показва скоростта на интернет. Моля, вижте въпросните изображения 1 и 2. - person taher; 20.04.2015
comment
@taher може би това ще помогне? stackoverflow.com/ въпроси/19610598/ - person k.nadonenko; 21.04.2015