我想要写入设置权限才能启动便携式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,因此进一步的代码无法正常工作。
答案 0 :(得分:1)
未记录ACTION_MANAGE_WRITE_SETTINGS以返回结果。大多数活动都不会返回结果。
也许它没有记录,但正如你发现自己总是有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;
}
}
答案 1 :(得分:0)
按下后退按钮后,resultCode始终为0
未记录ACTION_MANAGE_WRITE_SETTINGS
以返回结果。大多数活动都不会返回结果。
请勿致电startActivityForResult()
- 只需使用startActivity()
即可。如有需要,请致电Settings.System.canWrite(this)
查看您是否获得许可。