Android通知监听权限NotificationListener

Android通知监听权限NotificationListener

是否启用通知监听权限

通过 Settings.Secure.getString 获取启用了通知监听权限的列表,然后根据其中是否包含来判断

列表的字符串是这样的结构:应用包名称1/通知监听类全路径1:应用包名称2/通知监听类全路径2

例如包名为 shendi.notify,通知监听类在包下,名称为 MyNotifyService

shendi.notify/shendi.notify.MyNotifyService

所以判断当前应用是否启用通知监听权限代码如下

java 复制代码
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;
}

跳转系统通知监听页

当没开通通知监听权限,一般需要跳转,代码如下

java 复制代码
Intent intent = new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS);
context.startActivity(intent);

END

相关推荐
dal118网工任子仪6 小时前
93,【1】buuctf web [网鼎杯 2020 朱雀组]phpweb
android·前端
我的青春不太冷7 小时前
【探索篇】探索部署离线AI在Android的实际体验
android·人工智能·经验分享·科技·架构
qq_3988989311 小时前
Unity打包安卓报错sdk version 0.0 < 26.0(亲测解决)
android·unity·游戏引擎
fanged12 小时前
Android学习21 -- launcher
android·学习
爆米花煮鸡蛋18 小时前
UE4.27打包安卓报错
android·ue4
志尊宝18 小时前
Android 使用ExpandableListView时,需要注意哪些细节
android·gitee
志尊宝18 小时前
Android ExpandableListView 详细用法全解析
android·gitee
dal118网工任子仪1 天前
91,【7】 攻防世界 web fileclude
android·前端
taopi20241 天前
android java 用系统弹窗的方式实现模拟点击动画特效
android
fanged1 天前
Android学习19 -- 手搓App
android