如何将Android通知转换为NotificationCompat

时间:2015-03-26 00:05:56

标签: android android-notifications

我正在尝试阅读Action中每个RemoteInput附带的StatusBarNotificationNotificationListenerService。但是,我想使用兼容性库来获取支持,因此我尝试将所有内容设为NotificationCompat.Actionandroid.support.v4.app.RemoteInput

for (StatusBarNotification sbn : NLService.this.getActiveNotifications()) {
    Notification notif = sbn.getNotification();
    NotificationCompat notifCompat = //?????????????
}

getNotification只返回Notification而不是NotificationCompat,我一直非常沮丧地尝试将其转换为另一个。我确信有一种非常简单的方法可以做到,但是当我查看构建器类和扩展器类时,我找不到任何东西。

1 个答案:

答案 0 :(得分:1)

许多appcompat-v4类提供了访问API 4之后添加的方法的静态方法。

在API级别上调用它​​们时,其中许多都是no-op或返回默认值,而它们尚不存在。有些人会试图模仿新的行为。他们经常被记录在案。

例如,

// Using latest APIs
String sortKey = myNotification.getSortKey();

// Using compat APIs
String sortKey = NotificationCompat.getSortKey(myNotification);

作为旁注,这些类的implementation details值得研究以防万一你需要编写自己的类。它们通过静态加载当前API级别的正确实现类来避免代价高昂的反射。