我正在尝试阅读Action
中每个RemoteInput
附带的StatusBarNotification
和NotificationListenerService
。但是,我想使用兼容性库来获取支持,因此我尝试将所有内容设为NotificationCompat.Action
和android.support.v4.app.RemoteInput
。
for (StatusBarNotification sbn : NLService.this.getActiveNotifications()) {
Notification notif = sbn.getNotification();
NotificationCompat notifCompat = //?????????????
}
getNotification只返回Notification
而不是NotificationCompat
,我一直非常沮丧地尝试将其转换为另一个。我确信有一种非常简单的方法可以做到,但是当我查看构建器类和扩展器类时,我找不到任何东西。
答案 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级别的正确实现类来避免代价高昂的反射。