Android自4.3版本起拥有新的通知监听服务: http://developer.android.com/about/versions/jelly-bean.html http://developer.android.com/reference/android/service/notification/NotificationListenerService.html
根据文档:
默认情况下,通知访问被禁用 - 应用程序可以使用新 Intent,在安装后直接将用户带到设置中启用监听服务。
我没有找到文档中记录要触发的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: 找不到可处理意图{ act=android.settings.NOTIFICATION_LISTENER_SETTINGS }的活动)
我漏掉了什么吗?我不确定如何将用户发送到正确的设置屏幕以在我的应用程序中启用此服务。