Android 如何侦听用户授予或拒绝请勿打扰权限?
我想向用户请求访问\通知\策略权限,因此我使用了以下代码:Android 如何侦听用户授予或拒绝请勿打扰权限?,android,android-permissions,Android,Android Permissions,我想向用户请求访问\通知\策略权限,因此我使用了以下代码: if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !notificationManager.isNotificationPolicyAccessGranted()) { //Permission not granted so we will ask for it.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& !notificationManager.isNotificationPolicyAccessGranted()) {
//Permission not granted so we will ask for it.
Intent intent = new Intent(
android.provider.Settings
.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivity(intent);
//did the user allow the Don't Disturb permission or just ignore it?
} else {
//Permission granted
}
但我如何监听用户对该请求的批准或拒绝?也许他不允许DND的许可,我怎么知道 你应该看看。这里有一个带有注释的示例,可以帮助您理解
您完成了第一部分,即请求权限,然后必须使用onRequestPermissionsResult(int-requestCode,String[]permissions,int[]grantResults)处理响应。
你可以这样写:
if(android.os.Build.VERSION.SDK\u INT>=Build.VERSION\u CODES.M){
NotificationManager mNotificationManager=(NotificationManager)getApplication().getSystemService(Context.NOTIFICATION_服务);
if(mNotificationManager.isNotificationPolicyAccessPermited()){
Log.d(“政策许可”、“电话授权的DND许可”);
}否则{
Log.d(“策略许可”,“未授予电话DND许可”);
}
}
您应该看看。这里有一个带有注释的示例,可以帮助您理解
您完成了第一部分,即请求权限,然后必须使用onRequestPermissionsResult(int-requestCode,String[]permissions,int[]grantResults)处理响应。
你可以这样写:
if(android.os.Build.VERSION.SDK\u INT>=Build.VERSION\u CODES.M){
NotificationManager mNotificationManager=(NotificationManager)getApplication().getSystemService(Context.NOTIFICATION_服务);
if(mNotificationManager.isNotificationPolicyAccessPermited()){
Log.d(“政策许可”、“电话授权的DND许可”);
}否则{
Log.d(“策略许可”,“未授予电话DND许可”);
}
}
我使用了startActivityForResult
而不是startActivity
,如下所示:
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
assert notificationManager != null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& !notificationManager.isNotificationPolicyAccessGranted()) {
//Permission not granted so we will ask for it.
Intent intent = new Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivityForResult(intent, 55);
} else {
//Permission was granted
}
然后,我使用isNotificationPolicyAccessPermited()检查了ActivityResult中的结果
这对我很有效,但我不知道是否有更好的方法。我使用了
startActivityForResult
而不是startActivity
,如下所示:
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
assert notificationManager != null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& !notificationManager.isNotificationPolicyAccessGranted()) {
//Permission not granted so we will ask for it.
Intent intent = new Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivityForResult(intent, 55);
} else {
//Permission was granted
}
然后,我使用isNotificationPolicyAccessPermited()检查了ActivityResult中的结果
这对我很有效,但我不知道是否有更好的方法。但访问通知策略权限不同,要请求此权限,我们会为使用意图的用户打开一个设置屏幕,我没有调用
requestPermissions()
。用于侦听用户授予或拒绝此访问。我想使用操作\u通知\u策略\u访问\u授予\u更改,但如何更改?:(如果你不需要,为什么要使用它?这是另一篇有类似需求的帖子,在他的案例中,他不需要使用它,因为他有OnPreferenceClickListener
,但在我的案例中,我需要它。关于onRequestPermissionsResult
,它只适用于通过requestPermissions()请求的权限。)
,但DND权限不是。但访问通知策略权限不同,若要请求此权限,我们将为使用意图的用户打开一个设置屏幕,我没有调用requestPermissions()
。用于侦听用户授予或拒绝此访问。我想使用操作通知策略授予访问权限,但如何更改?:(如果你不需要,为什么要使用它?这是另一篇有类似需求的帖子,在他的案例中,他不需要使用它,因为他有OnPreferenceClickListener
,但在我的案例中,我需要它。关于onRequestPermissionsResult
,它只适用于通过requestPermissions()请求的权限。)
,但DND权限无效。