Уведомление Android Wear предотвращает мигание значка при обновлении

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

Большинство упоминаемых решений говорят об обновлении одного и того же уведомления, используйте setAlertOnlyOnce , сохраняя идентификатор или когда тот же. Однако, независимо от того, что я делаю, каждый раз, когда уведомление обновляется, оно мигает (наиболее отмечено значком приложения).

Как было предложено здесь, Android Wear: Timer, как плата уведомлений на устройстве износа, вы можете использовать setHintHideIcon (true), чтобы скрыть значок приложения, который скрывает мигающую часть, однако в ограниченном мире Android Wear Notifications значок приложения играет большую роль в Брендинг приложения.

Если вы хотите таймер, вы можете использовать .setUsesChronometer (true) и позволить системе обновлять таймер, который отлично работает. К сожалению, если вы хотите обновить что-то еще, кроме времени (например, шаги или полученные сообщения), мне кажется, вам не повезло.

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

Прокомментированная строка ниже, чтобы продемонстрировать, что уведомление все еще мигает (при беге, а не в телефоне), что уведомление все еще мигает при публикации неизмененного уведомления о пригодности для носки. Раскомментируйте, чтобы обновить уведомление еще раз.

mNotification = buildNotification(WearMainActivity.this); 

Поэтому мой вопрос заключается в том, есть ли у кого-нибудь еще какие-то идеи, которые мы можем исследовать, чтобы не допустить уведомления от уведомления или если мы можем записать это как ошибку Android Wear?

 public class WearMainActivity extends Activity { public final int NOTIFICATION_ID= 1; public Notification mNotification; public int count; public long when; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); count = 0; when = System.currentTimeMillis(); mNotification = buildNotification(WearMainActivity.this); postDelayedHandler(); finish(); } private void postDelayedHandler(){ new Handler().postDelayed(new Runnable() { public void run() { count++; mNotification = buildNotification(WearMainActivity.this); NotificationManager notifyMgr = ((NotificationManager) getSystemService(NOTIFICATION_SERVICE)); notifyMgr.notify(NOTIFICATION_ID, mNotification); postDelayedHandler(); } }, 1000L); } private Notification buildNotification(Context context){ return new Notification.Builder(context) .setSmallIcon(R.drawable.ic_launcher) .setContentTitle(context.getString(R.string.app_name)) .setContentText("Count: "+count) .setWhen(when) // .setOngoing(true) //Don't do this, adds "Mute app" action .setOnlyAlertOnce(true) .setPriority(Notification.PRIORITY_MAX) .extend(new Notification.WearableExtender() // .setHintHideIcon(true) //Hides the icon, so kinda hides the blink ) .build(); } } 

Протестировано:
Wearable: Moto 360 (4.4W2) Эмулятор износа (5.0.1)
Телефоны: Galaxy Nexus (4.3) и Nexus 5 (5.0.0)

Происходит: При работе в качестве приложения Wearable или в виде уведомления о телефоне, отображаемом на Wearable. Прекрасно работает на телефоне.

Связанные вопросы:
Как я могу избежать мигания обновления уведомлений при изменении кнопки
Постоянное обновление текущего уведомления
Как правильно обновить сообщение уведомления api 11?

Solutions Collecting From Web of "Уведомление Android Wear предотвращает мигание значка при обновлении"

Заменить:

 NotificationManager notifyMgr = ((NotificationManager)getSystemService(NOTIFICATION_SERVICE)); 

чтобы:

 NotificationManagerCompat notifyMgr = NotificationManagerCompat.from(this); 

Дополнительная информация: https://developer.android.com/training/wearables/notifications/creating.html

Вы также делаете много обновлений. Каждое обновление отправляется через Bluetooth для Wear. Вы должны создать приложение для самостоятельной установки Android Wear. Задержка отправки составляет около 3 секунд.

Я решил эту проблему некоторое время назад, когда я работал с Android Wear, но код, к сожалению, ушел. Во всяком случае, я сделал это, чтобы не создавать уведомление каждый раз, когда я хотел его обновить. Я только что пометил уведомление в первый раз, когда я его создал, а затем я получил его с помощью TAG и внес свои изменения непосредственно этому объекту. Это полностью остановило мерцание …