在运行时授予用户权限后,Android 6.0需要重新启动

时间:2015-09-21 15:32:04

标签: android permissions android-permissions android-6.0-marshmallow

我按照本指南要求获取Android 6.0的权限,https://developer.android.com/preview/features/runtime-permissions.html#support-lib

但是,我必须销毁我的应用程序并重新启动以实际拥有WRITE_EXTERNAL_STORAGE权限,否则它将无法创建文件。

我错过了什么吗?

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);
}

在服务中创建文件,这是模拟器而非真实设备。

1 个答案:

答案 0 :(得分:2)

这是一个已经提到的错误,但我在这个问题中发现你可以添加这一行:

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

获得您的许可后。这不是一个真正的修复,只是有助于避免崩溃。