我在清单里面:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
但是当我运行应用程序(它应该创建并弹出卡片作为图像)时,不会创建图像。
然后我手动更改应用的权限(启用外部存储权限:settings->applications->Myapp->permissions
),该应用正常运行。
如何解决此问题?
答案 0 :(得分:0)
如果您的版本低于android 6(Marshmallow),您可以在不检查权限的情况下使用此代码:
final int REQUEST_CODE = 1;
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},REQUEST_CODE);
否则你需要一个不同的方法:
public static boolean checkIfPermissionNeeded(Activity activity) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED){
return true;
}
return false;
}
如果返回true
,您可以使用第一个块中的代码。
所以:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
switch (requestCode){
case REQUEST_CODE:
if(grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
//task may be continued
permission = true;
}
else{
//task cancelled
permission = false;
}
break;
}
}
在您的活动中,如果权限为true
,您可以继续执行所需的操作。