Android通知监听权限NotificationListener
Android通知监听权限NotificationListener
是否启用通知监听权限
通过 Settings.Secure.getString
获取启用了通知监听权限的列表,然后根据其中是否包含来判断
列表的字符串是这样的结构:应用包名称1/通知监听类全路径1:应用包名称2/通知监听类全路径2
例如包名为 shendi.notify
,通知监听类在包下,名称为 MyNotifyService
shendi.notify/shendi.notify.MyNotifyService
所以判断当前应用是否启用通知监听权限代码如下
public static boolean isNotificationListenerEnabled(Context context) {
String packageName = context.getPackageName();
// 获取系统中所有启用了通知监听权限的包名
String enabledListeners = Settings.Secure.getString(context.getContentResolver(), "enabled_notification_listeners");
System.out.println(enabledListeners);
if (enabledListeners != null && !TextUtils.isEmpty(enabledListeners)) {
String[] packages = enabledListeners.split(":");
for (String packageNameInList : packages) {
if (packageNameInList.contains(packageName)) {
return true;
}
}
}
return false;
}
跳转系统通知监听页
当没开通通知监听权限,一般需要跳转,代码如下
Intent intent = new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS);
context.startActivity(intent);
END