Проблемы с иконками уведомлений о разработке Android - PullRequest
1 голос
/ 11 января 2011

У меня странная проблема с иконками уведомлений в моем приложении.

Мое приложение отправляет и получает данные через Bluetooth.Когда приложение запускается, оно создает значок уведомления приложения (icon.png).Затем он увидит, что устройство Bluetooth не подключено, и изменит значок на (warn.png).Проблема заключается в том, что когда строка состояния вверху показывает warn.png, в раскрывающемся раскрывающемся уведомлении отображается значок оригинала (icon.png) с текстом «Нет подключенного устройства Bluetooth».Когда устройство Bluetooth подключается, значок строки состояния меняется на исходный значок (icon.png), но под текущим уведомлением у него появляется значок предупреждения с сообщением «Соединение установлено».

Ниже приведен код, который я использовал:

private void notification_updates(String DISPLAY_TEXT, String ONGOING_TEXT, int ICON) {
Intent intent = new Intent(this,GUI.class);
intent.addFlags(intent.FLAG_ACTIVITY_NEW_TASK | intent.FLAG_ACTIVITY_SINGLE_TOP);

try
{
    notification.setLatestEventInfo(Monitor.this, "App_Name",ONGOING_TEXT, 
            PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT));
    notification.icon = ICON;
    notification.tickerText = DISPLAY_TEXT;
    notification.flags = notification.FLAG_ONGOING_EVENT; //on going events
    notification.flags += notification.FLAG_NO_CLEAR; //no clear.

    mManager.notify(APP_ID, notification);

} catch(Exception e)
{
    Log.e(TAG, "Failed to Notifiy the notification manager (create):\n" + e.toString());
}

}

1 Ответ

1 голос
/ 12 января 2011

Попробуйте создать новое уведомление и посмотрите, правильно ли обновляется значок в представлении содержимого.

В качестве альтернативы, если это не сработает, создайте пользовательский вид контента: http://developer.android.com/guide/topics/ui/notifiers/notifications.html#CustomExpandedView

Затем в вашем объекте RemoteViews установитеImageViewResource для обновления вашего значка, setTextViewText для обновления текста и задайте в качестве объекта response.contentView объект RemoteViews. Я успешно справился с обновлением как значка в строке состояния, так и значка / текста в расширенной панели задач.

Тангенциально, я заметил, что в вашем коде естьtification.flags + = messages.FLAG_NO_CLEAR. Я считаю, так как это битовая маска, вы хотите | = вместо + =

...