【发布时间】:2013-07-25 13:55:01
【问题描述】:
从 4.3 开始,Android 有一个新的通知侦听器服务: http://developer.android.com/about/versions/jelly-bean.html http://developer.android.com/reference/android/service/notification/NotificationListenerService.html
来自文档:
默认情况下禁用通知访问 - 应用可以使用新的 Intent 将用户直接带到设置以在安装后启用侦听器服务。
我看不到任何地方都记录了开枪的意图。仔细阅读设置文档似乎没有帮助: http://developer.android.com/reference/android/provider/Settings.html
直接看Settings类: https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/provider/Settings.java
我看到定义了 ACTION_NOTIFICATION_LISTENER_SETTINGS,但是当使用 Android Studio 并指向 4.3 ACTION_NOTIFICATION_LISTENER_SETTINGS 时无法解析:
Intent intent = new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS);
更多手动尝试似乎不起作用:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setClassName("com.android.settings", "android.settings.NOTIFICATION_LISTENER_SETTINGS");
编辑:按照 CommonsWare 在下面指出的正确方式进行操作:
Intent intent=new Intent("android.settings.NOTIFICATION_LISTENER_SETTINGS");
导致崩溃:
(android.content.ActivityNotFoundException: No Activity found to 处理意图 { act=android.settings.NOTIFICATION_LISTENER_SETTINGS })
我错过了什么吗?我不确定如何将用户引导至正确的设置屏幕以在我的应用中启用此服务。
【问题讨论】:
-
有趣的问题。新API是否可以获取通知文本和描述等?
-
是的,一旦设置了服务,您就可以直接获取通知 (developer.android.com/reference/android/app/Notification.html)
-
好的,太好了!但是没有办法从
StatusBarNotification获取通知或说明文本 -
developer.android.com/reference/android/service/notification/… 有一个 getNotification() 方法
-
是的,但是从那里你必须使用
Parcel,从通知中获取所有不同的短信并不容易
标签: android notifications android-4.3-jelly-bean