gpt4 book ai didi

android - 在 Android 7(API 级别 24)中,我的应用不允许将手机静音(将铃声模式设置为静音)

转载 作者:IT王子 更新时间:2023-10-29 00:06:00 27 4
gpt4 key购买 nike

我有一个应用程序,它通过使用 AudioManager 并使用以下代码将振铃模式设置为静音来使手机静音:

AudioManager audioManager = 
(AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
try {
audioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT)
} catch (Exception e) {
e.printStackTrace();
}

这适用于 Android 6,但现在使用 Android 7,我收到以下错误:

System.err: java.lang.SecurityException: Not allowed to change Do Not Disturb state
System.err: at android.os.Parcel.readException(Parcel.java:1683)
System.err: at android.os.Parcel.readException(Parcel.java:1636)
System.err: at android.media.IAudioService$Stub$Proxy.setRingerModeExternal(IAudioService.java:962)
System.err: at android.media.AudioManager.setRingerMode(AudioManager.java:1022)
System.err: at controllers.SearchResultController.mutePhone(SearchResultController.java:185)

我需要申请什么新权限才能完成这项工作吗?

我查看了 Android 权限列表,但找不到任何相关的内容。

最佳答案

感谢您的回答,这里有一些更详细的信息。

为了能够将振铃模式设置为静音,您必须请求访问通知策略的权限(就像@ucsunil 所说的那样)。

<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />

然后,检查您是否有此权限。如果您不这样做,请为您的应用打开“请勿打扰”设置:

NotificationManager notificationManager = 
(NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
&& !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);
}

关于android - 在 Android 7(API 级别 24)中,我的应用不允许将手机静音(将铃声模式设置为静音),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39151453/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com