我能够访问提供其包名并使用PackageManager.getApplicationIcon()
的应用程序的图标,但我无法在文档中找到状态栏图标的方法(小图标,出现通知时出现。)
有可能吗?
答案 0 :(得分:1)
我认为您可以获得通知标题,文字和通知。
从StatusBarNotification
,您可以statusBarNotification.getNotification()
获取通知,并通过https://developer.android.com/reference/android/app/Notification.html#getSmallIcon()
public void onNotificationPosted(StatusBarNotification sbn) {
String pack = sbn.getPackageName();
String ticker = sbn.getNotification().tickerText.toString();
Bundle extras = sbn.getNotification().extras;
String title = extras.getString("android.title");
String text = extras.getCharSequence("android.text").toString();
Log.i("Package",pack);
Log.i("Ticker",ticker);
Log.i("Title",title);
Log.i("Text",text);
Intent msgrcv = new Intent("Msg");
msgrcv.putExtra("package", pack);
msgrcv.putExtra("ticker", ticker);
msgrcv.putExtra("title", title);
msgrcv.putExtra("text", text);
LocalBroadcastManager.getInstance(context).sendBroadcast(msgrcv);
}
您可以获得更多信息@ http://developer.android.com/reference/android/service/notification/NotificationListenerService.html
注意:此方法仅适用于API 18。
进一步调查我发现了另一个用户关于如何使用NotificationListenerService的示例:
https://github.com/kpbird/NotificationListenerService-Example
AccessibilityService用于处理辅助功能:
辅助功能服务在后台运行并接收回调 在触发AccessibilityEvents时由系统。这类事件表示 用户界面中的某些状态转换,例如焦点 已更改,已单击按钮等。此类服务可以 可选地请求查询内容的功能 活动窗口。开发可访问性服务需要 扩展这个类并实现它的抽象方法。
答案 1 :(得分:0)
由于每个应用都可以在运行时设置通知图标,因此您无法获得它。对于同一个应用程序的每个通知,它甚至可能不同。