感谢您的回答,这里有一点点细节.
为了能够将铃声模式设置为静音,您必须具有访问通知策略的权限(如@ucsunil所说).
首先检查你是否有这个权限.如果没有,请打开应用程序的免打扰访问设置:
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
&& !notificationManager.isNotificationPolicyAccessGranted()) {
Intent intent = new Intent(
android.provider.Settings
.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivity(intent);
}
当您运行startActivity()时,Android会打开您的应用的免打扰访问设置.
令我困惑的是,要求这个权限的方式与其他许可权完全不同.
只是为了参考,这里是要求许可的方式READ_CONTACTS:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& ActivityCompat.checkSelfPermission(activity,
Manifest.permission.READ_CONTACTS)
== PackageManager.PERMISSION_DENIED) {
ActivityCompat.requestPermissions(activity,
new String[]{ Manifest.permission.READ_CONTACTS },
REQUEST_CODE_READ_CONTACTS);
}