繁体   English   中英

android,如何监听通知权限变更事件

[英]android, how to listen to the notification permission change event

在 android 应用程序可以通过以下方式打开通知权限

Intent intent = new Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
        .putExtra(Settings.EXTRA_APP_PACKAGE, context.getPackageName());
startActivity(intent);

并将其打开或关闭。 在此处输入图像描述

如何收听这里发生的权限更改? 会播出吗?

编辑:> 28 似乎有广播,但在此之前尚未找到 api 的解决方案。 https://developer.android.com/reference/android/app/NotificationManager#ACTION_APP_BLOCK_STATE_CHANGED

ACTION_APP_BLOCK_STATE_CHANGED
Added in API level 28

public static final String ACTION_APP_BLOCK_STATE_CHANGED
Intent that is broadcast when an application is blocked or unblocked. This broadcast is only sent to the app whose block state has changed. 

我不相信有可能得到通知,但如果我错了,我希望得到更正。 也就是说,用户也可以随时更改此设置,而不仅仅是在您触发 Intent 时。 虽然 areNotificationsEnabled() 在这里会有所帮助,但不幸的是,您可能还需要涵盖较新 API 中的通知通道以及通知通道组的情况。

我认为这是不可能的。 如果用户授予该应用程序的权限,您发现的唯一方法是再次调用checkSelfPermission()

如果用户撤销了先前授予的权限,您的进程将终止,您将在下次运行应用程序时调用 checkSelfPermission() 来了解权限更改。 所以我认为每次你启动你的应用程序时,调用 checkSelfPermission() 来找出是否有任何变化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM