我正在尝试构建一个将在其他UI中显示通知的应用程序。我可以使用NotificationListenerService来获取通知的更新。最近,Android添加了对Android Auto的支持。这提供了更多功能,例如ReplyIntent等。如何从StatusBarNotification
中读取此信息答案 0 :(得分:0)
您可以从sbn.getNotification()获取CarExtenders UnreadConversation。
public class NotificationListener extends NotificationListenerService {
@Override
public void onNotificationPosted(StatusBarNotification sbn) {
super.onNotificationPosted(sbn);
processNotifications(sbn);
}
private void processNotifications(StatusBarNotification sbn) {
// get the CarExtender from the sbn
CarExtender carExtender = new CarExtender(sbn.getNotification());
//get the unread conversation from the carExtender
UnreadConversation unreadConversation = carExtender.getUnreadConversation();
// get the remote input and read/reply pending intents
if (unreadConversation != null) {
RemoteInput remoteInput = unreadConversation.getRemoteInput();
PendingIntent readPendingIntent = unreadConversation.getReadPendingIntent();
PendingIntent replyPendingIntent = unreadConversation.getReplyPendingIntent();
}
}
}
需要注意的几件事是,Android Auto还使用了NotificationListenerService,并且所有通知侦听器都同时收到有关新通知的通知。一个听众没有时间阻止其他听众显示通知,也没有办法让一个听众优先于另一个听众。
此外,使用用于汽车的Public SDK,实际上无法将元素绘制到投影到主机的屏幕上。听起来当您提到“在其他用户界面中显示通知”时,您可能正在尝试执行此操作