Я обнаружил, что уведомления, запускаемые при использовании startForeground(), не отображаются в носимых устройствах,
т.е. для приведенного ниже кода,
Intent notIntent = new Intent(this, MainActivity.class);
notIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendInt = PendingIntent.getActivity(this, 0,
notIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentIntent(pendInt)
.setSmallIcon(R.drawable.play)
.setTicker(songTitle)
.setContentTitle("Playing")
.setContentText(songTitle);
Notification not = builder.build();
startForeground(NOTIFY_ID, not);
но если я перепишу код вот так,
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setContentIntent(pendInt)
.setSmallIcon(R.drawable.play)
.setTicker(songTitle)
.setContentTitle("Playing")
.setContentText(songTitle);
NotificationManagerCompat notificationManager =
NotificationManagerCompat.from(MusicService.this);
notificationManager.notify(NOTIFY_ID, builder.build());
Wearbles начинают отображать его.
Итак, мой вывод заключается в том, что startForeground() может не использовать версию диспетчера уведомлений «Compat» для уведомления. Есть ли способ, которым я могу перевести службу на передний план и сделать так, чтобы создаваемое ею уведомление также отображалось на носимом устройстве без написания носимого приложения ?
P.S. Я говорю здесь о портативном приложении, а не о приложении для ношения, тема обсуждения — синхронизация уведомления от портативного приложения, которое запускается с помощью startforeground() в сервисе портативного приложения для автоматической синхронизации с носимым устройством.
Notification.Builder
вместоNotificationCompat.Builder
? - person gruszczy   schedule 14.12.2014