無法獲得寫設置權(quán)限當我在AndroidMPreview 3上的目標API為23時,我似乎無法獲得Manifest.Licsion.WRITE_SET權(quán)限。 requestPermissions(new String[]{Manifest.permission.WRITE_SETTINGS},
101);請求權(quán)限不會彈出我期望的對話框,但是如果我在沒有此權(quán)限的情況下進行以下調(diào)用, RingtoneManager.setActualDefaultRingtoneUri(activity, RingtoneManager.TYPE_RINGTONE, ringUri);除非我沒有得到許可,否則我會打電話的。我不知道從這里往哪里走。有23的新鈴聲API嗎?還是這一權(quán)限的改變僅僅使任何非系統(tǒng)應用程序都無法改變鈴聲?
3 回答

阿晨1998
TA貢獻2037條經(jīng)驗 獲得超6個贊
public static void youDesirePermissionCode(Activity context){ boolean permission; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { permission = Settings.System.canWrite(context); } else { permission = ContextCompat.checkSelfPermission(context, Manifest.permission.WRITE_SETTINGS) == PackageManager.PERMISSION_GRANTED; } if (permission) { //do your code } else { if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) { Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS); intent.setData(Uri.parse("package:" + context.getPackageName())); context.startActivityForResult(intent, MainActivity.CODE_WRITE_SETTINGS_PERMISSION); } else { ActivityCompat.requestPermissions(context, new String[]{Manifest.permission.WRITE_SETTINGS}, MainActivity.CODE_WRITE_SETTINGS_PERMISSION); } } }
Activity
:
@SuppressLint("NewApi") @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == MainActivity.CODE_WRITE_SETTINGS_PERMISSION && Settings.System.canWrite(this)){ Log.d("TAG", "MainActivity.CODE_WRITE_SETTINGS_PERMISSION success"); //do your code } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if (requestCode == MainActivity.CODE_WRITE_SETTINGS_PERMISSION && grantResults[0] == PackageManager.PERMISSION_GRANTED) { //do your code } }
- 3 回答
- 0 關(guān)注
- 469 瀏覽
添加回答
舉報
0/150
提交
取消