如何从通知中读取CarExtender信息

时间:2018-11-05 16:59:08

标签: android android-auto

我正在尝试构建一个将在其他UI中显示通知的应用程序。我可以使用NotificationListenerService来获取通知的更新。最近,Android添加了对Android Auto的支持。这提供了更多功能,例如ReplyIntent等。如何从StatusBarNotification

中读取此信息

1 个答案:

答案 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,实际上无法将元素绘制到投影到主机的屏幕上。听起来当您提到“在其他用户界面中显示通知”时,您可能正在尝试执行此操作