Android 6.0 needs restart after granting user permission at runtime

本秂侑毒 提交于 2019-12-19 12:49:17

问题


I follow this guide to ask for permissions for Android 6.0, https://developer.android.com/preview/features/runtime-permissions.html#support-lib

However, I have to destroy my application and re-launch to actually have the WRITE_EXTERNAL_STORAGE permission, otherwise it keeps failing for file creation.

Am I missing something?

if(ActivityCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED){
    ActivityCompat.requestPermissions((MainActivity)mContext,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},MY_PERMISSION_REQUEST_WRITE_EXTERNAL_STORAGE);
} else {
    Intent i = new Intent(v.getContext(), ServiceDownload.class);
    v.getContext().startService(i);
}

File is created in the service and this is emulator not a real device.


回答1:


It is a bug as someone already mentioned, but I found in this question that you can add this line:

android.os.Process.killProcess(android.os.Process.myPid());

after your permission has been granted. This is not a real fix, just helps avoid crashing.



来源:https://stackoverflow.com/questions/32699129/android-6-0-needs-restart-after-granting-user-permission-at-runtime

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!