我需要写入设置权限才能启动可移植 WLAN 热点...
这是我得到的,
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.System.canWrite(getApplicationContext())) {
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS, Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, 200);
}
}
这一切正常,直到我在授予权限后按下后退按钮。
按下后退按钮后,resultCode 始终为 0,因此进一步的代码无法正常工作。
最佳答案
An ACTION_MANAGE_WRITE_SETTINGS is not documented to return a result. Most activities do not return a result.
也许它没有记录在案,但正如您自己注意到的,ACTION_MANAGE_WRITE_SETTINGS
总是有一个结果。虽然 resultCode
始终为 0,但结果确实会返回给您原来的 requestCode
。
因此您可以使用它来检查 onActivityResult
您现在是否拥有您请求的权限。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode){
case REQUEST_CODE_WRITE_SYSTEM:
boolean canWrite = Settings.System.canWrite(this);
// Handle the result here
break;
}
}
关于android - 处理 ACTION_MANAGE_WRITE_SETTINGS Activity 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44389632/