我正在尝试使用Android 4.3的Notification Listener API读取通知。
我已经按照多个教程进行了操作,例如 http://gmariotti.blogspot.hk/2013/11/notificationlistenerservice-and-kitkat.html?view=magazine。
此外,这个问题并不能解决我的问题,因为我不是要读取Big View通知。我可以做到那一点。
这是我的代码:
Log.d(logtag,"CharSequence - Title: "+sbn.getNotification().extras.getCharSequence("android.title")+
" CharSequence - textLines: "+sbn.getNotification().extras.getCharSequence("android.textLines")+
" CharSequence - subText: "+sbn.getNotification().extras.getCharSequence("android.subText")+
" CharSequence - text: "+sbn.getNotification().extras.getCharSequence("android.text")+
" CharSequence - infoText: "+sbn.getNotification().extras.getCharSequence("android.infoText")+
" CharSequence - summaryText: "+sbn.getNotification().extras.getCharSequence("android.summaryText"));
Log.d(logtag,"String - Title: "+sbn.getNotification().extras.getString("android.title")+
" String - textLines: "+sbn.getNotification().extras.getString("android.textLines")+
" String - subText: "+sbn.getNotification().extras.getString("android.subText")+
" String - text: "+sbn.getNotification().extras.getString("android.text")+
" String - infoText: "+sbn.getNotification().extras.getString("android.infoText")+
" String - summaryText: "+sbn.getNotification().extras.getString("android.summaryText"));
Log.d(logtag, "--------------------------------------------------------------------------------------------");
Notification mNotification=sbn.getNotification();
if (mNotification!=null){
Bundle extras = mNotification.extras;
String notificationTitle =
extras.getString(Notification.EXTRA_TITLE);
Bitmap notificationLargeIcon =
((Bitmap) extras.getParcelable(Notification.EXTRA_LARGE_ICON));
CharSequence notificationText =
extras.getCharSequence(Notification.EXTRA_TEXT);
CharSequence notificationSubText =
extras.getCharSequence(Notification.EXTRA_SUB_TEXT);
CharSequence notificationTextLines =
extras.getCharSequence("android.textLines");
Log.d(logtag, "New Title: "+notificationTitle);
Log.d(logtag, "New Text: "+notificationText);
Log.d(logtag, "New subText: "+notificationSubText);
Log.d(logtag, "New textLines: "+notificationTextLines);
Log.d(logtag, "--------------------------------------------------------------------------------------------");
这是我从截图中获取的ADB输出:
D/AANN - NotificationListener﹕ CharSequence - Title: Alex CharSequence - textLines: null CharSequence - subText: null CharSequence - text: null CharSequence - infoText: null CharSequence - summaryText: 8 new messages.
D/AANN - NotificationListener﹕ String - Title: Alex String - textLines: null String - subText: null String - text: null String - infoText: null String - summaryText: 8 new messages.
D/AANN - NotificationListener﹕ New Title: WhatsApp
D/AANN - NotificationListener﹕ New Text: null
D/AANN - NotificationListener﹕ New subText: null
D/AANN - NotificationListener﹕ New textLines: null
我想做的是获取每个通知的对象字符串或其他内容。我只需要每个通知的文本、标题和源应用程序。
如您所见,我当前收到的对象只在我尝试从通知中获取文本时返回 Null。