我想将我的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);
但我的项目要求是不要求打开设置意图以允许它在那里形成。应该像获得用户权限一样在同一活动上更改模式,就像所有其他权限一样,例如位置,阅读联系人等。
我试图找出他们如何在代码文件中实现权限但却找不到它。如果有人知道,请告诉我。
答案 0 :(得分:1)
这是使用api level > 23
Intent intent = new Intent(
android.provider.Settings
.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivity(intent);
现在正式由Android发布,获取用户访问设备通知政策的权限,以更改音频模式。