web*_*org 5 android android-permissions android-6.0-marshmallow
我遵循MainActivity,它寻求6.0电话和存储任务的许可.它会提示许可2次,然后崩溃.在acquire_permission之后,是否需要重新启动MainActivity?感谢任何帮助或指点.
MainActivity.java
onCreate(){
seek_permissions()
//load db data and continue
//with the app tasks
}
public void seek_permissions(){
boolean hasWritePermission = (ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED);
if (!hasWritePermission) {
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.READ_PHONE_STATE,Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.MOUNT_FORMAT_FILESYSTEMS,Manifest.permission.RECEIVE_BOOT_COMPLETED,Manifest.permission.MODIFY_PHONE_STATE}, REQUEST_PERM);
}
}
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case REQUEST_PERM:
{
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
acquired_perm = 1;
}
else {Toast.makeText(MainActivity.this, "Please consider granting these permissions", Toast.LENGTH_LONG).show(); }
}
return;
}
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这是因为我android:noHistory="true"在清单中使用了此活动?
我认为这可能是Android 6.0的一个错误,因为更高版本似乎可以正常工作。
如果noHistory设置为if,则ActivityCompat.requestPermissions调用将导致onDestroy执行调用方Activity的活动,从而将其销毁。由于它noHistory不再存在,因此未保存在历史记录中,并且在取消权限对话框时,该应用实质上已关闭。
作为一种替代方法,而不是"noHistory"在清单中,您可以finish()在onStop()离开“活动”并从清单中删除标记时,在其中调用或其他合适的位置。
| 归档时间: |
|
| 查看次数: |
1574 次 |
| 最近记录: |