ในฐานะของหุ่นยนต์ Marshmellow คุณจำเป็นต้องใช้สิทธิ์รันไทม์ซึ่งมีวัตถุประสงค์เพื่อการรักษาความปลอดภัยมากขึ้นหรือการใช้งานได้รับอนุญาตเมื่อต้องที่นี่เป็นdocumenatation
และสำหรับเอกสารการตั้งค่าการเขียนอยู่ที่นี่
ในรายการเพิ่ม
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
ในชั้นเรียนของคุณ
private boolean checkSystemWritePermission() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if(Settings.System.canWrite(context))
return true;
else
openAndroidPermissionsMenu();
}
return false;
}
private void openAndroidPermissionsMenu() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
intent.setData(Uri.parse("package:" + context.getPackageName()));
context.startActivity(intent);
}
}
แล้วใช้แบบนี้
try {
if (checkSystemWritePermission()) {
RingtoneManager.setActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE, newUri);
Toast.makeText(context, "Set as ringtoon successfully ", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(context, "Allow modify system settings ==> ON ", Toast.LENGTH_LONG).show();
}
} catch (Exception e) {
Log.i("ringtoon",e.toString());
Toast.makeText(context, "unable to set as Ringtoon ", Toast.LENGTH_SHORT).show();
}