如何在不打开设置意图的情况下更改Android 7.0中的音频模式(静音,普通)?

时间:2017-10-06 16:51:12

标签: android android-7.0-nougat android-7.1-nougat

我想将我的Android设备音频模式从Normal更改为silent,将silent更改为normal。 `

AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
                if(!silent) {
                    audio.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
                    silent = true;
                }
                else {
                    audio.setRingerMode( AudioManager.RINGER_MODE_VIBRATE );
                    silent = false;
                }

` 这是我正在使用的代码。完美运行直到Android 6所有版本。 但是在Android 7+上它崩溃了。

我在网上找到了一个打开设置意图并获得用户许可的解决方案,然后此代码正常工作。这是我用过的代码

Intent intent = new Intent(
                    android.provider.Settings
                    .ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);

startActivity(intent);

但我的项目要求是不要求打开设置意图以允许它在那里形成。应该像获得用户权限一样在同一活动上更改模式,就像所有其他权限一样,例如位置,阅读联系人等。

我试图找出他们如何在代码文件中实现权限但却找不到它。如果有人知道,请告诉我。

1 个答案:

答案 0 :(得分:1)

这是使用api level > 23

更改Android音频模式的唯一方法
Intent intent = new Intent(
                android.provider.Settings
                .ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivity(intent);

现在正式由Android发布,获取用户访问设备通知政策的权限,以更改音频模式。