【发布时间】:2018-10-23 16:26:03
【问题描述】:
我正在构建一个 android 应用程序,我需要将用户的手机置于静音模式。我正在使用不同的方法,它在 android M(23 级)之前运行良好。 现在我们都知道android已经在android N及更高版本中更新了自动静音模式的政策,需要免打扰访问的特殊权限才能将手机置于静音模式。我对 android N 和更高版本的操作系统也做了同样的事情。但它仍然不能在 android N 及更高版本上运行。当我做这一切时,它不会给我任何错误,但它仍然无法正常工作。我附上下面的代码 sn-ps 看看并尝试找出问题所在。谢谢朋友。
我在其中授予“请勿打扰”应用程序访问权限的代码片段
public void onRingerPermissionsClicked(View view) {
Intent intent = null;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
}
startActivity(intent);
}
手机静音方法
setRingerMode(context, AudioManager.RINGER_MODE_SILENT);
方法 setRingerMode()
private void setRingerMode(Context context, int mode) {
NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
// Check for DND permissions for API 24+
if (android.os.Build.VERSION.SDK_INT < 24 ||
(android.os.Build.VERSION.SDK_INT >= 24 && !nm.isNotificationPolicyAccessGranted())) {
AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setRingerMode(mode);
}
}
【问题讨论】:
-
可能,为此重复 -> (stackoverflow.com/questions/31862753/…)
标签: java android android-permissions android-7.0-nougat silent-notification