我发现使用 startForeground() 时触发的通知没有出现在可穿戴设备中,
IE。对于下面的代码,
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());
可穿戴设备开始显示它。
所以我的结论是 startForeground() 可能没有使用通知管理器的“Compat”版本来通知。有什么方法可以使服务前台并使其产生的通知也显示在可穿戴设备上,而无需编写可穿戴应用程序?
PS我在这里谈论的是手持应用程序而不是穿戴应用程序,讨论的主题是同步来自手持应用程序的通知,该应用程序在手持应用程序的服务中使用 startforeground() 启动以与可穿戴设备自动同步。