正在尝试制作绘画应用程序。除了“保存”按钮外,其他所有功能都按预期运行。每当我单击save按钮时,它都不会保存,并且我会收到一个错误java.lang.SecurityException: Permission Denial: writing com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=10397, uid=10298 requires android.permission.WRITE_EXTERNAL_STORAGE, or grantUriPermission()
。
else if(view.getId()==R.id.save_btn){
//save drawing
AlertDialog.Builder saveDialog = new AlertDialog.Builder(this);
saveDialog.setTitle("Save drawing");
saveDialog.setMessage("Save drawing to device Gallery?");
saveDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which){
//save drawing
}
});
saveDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int which){
dialog.cancel();
}
});
saveDialog.show();
drawView.setDrawingCacheEnabled(true);
String imgSaved = MediaStore.Images.Media.insertImage(
getContentResolver(), drawView.getDrawingCache(),
UUID.randomUUID().toString()+".png", "drawing");
在名单上我有
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
最佳答案
你可以这样包装你的代码:
//check permission is granted or no
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
{
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, RESULT);
}
else
{
//your code
}
关于java - SecurityException权限-不将图像保存到android设备,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39194360/