我按照本指南要求获取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);
}
在服务中创建文件,这是模拟器而非真实设备。
答案 0 :(得分:2)
这是一个已经提到的错误,但我在这个问题中发现你可以添加这一行:
android.os.Process.killProcess(android.os.Process.myPid());
获得您的许可后。这不是一个真正的修复,只是有助于避免崩溃。