我尝试将手机拍摄的Bitmap
照片添加到Android Studio的图库中,但收到错误消息:
Failed to insert image
java.lang.SecurityException: Permission Denial: writing com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=4110, uid=10058 requires android.permission.WRITE_EXTERNAL_STORAGE, or grantUriPermission()
我用过Manifest xml:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="21"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="21" />
我保存图片的方式是:
MediaStore.Images.Media.insertImage(getContentResolver(), FullBitmap, "Name" , "Date");
我正在使用Nexus 5模拟器和Android 5.1版。
答案 0 :(得分:2)
正如@ njzk2指出的那样,不要使用android:maxSdkVersion
属性。此属性适用于较高API级别不再需要的权限。文档中给出的示例是应用此属性的几个原因之一:
例如,从Android 4.4(API级别19)开始,它不再是 您的应用需要
WRITE_EXTERNAL_STORAGE
您的应用想要写入自己的权限 外部存储上的特定于应用程序的目录(目录 由getExternalFilesDir()
提供。但是,许可是 API级别18及更低级别所需。
在您的情况下,您正在访问公共目录;您 所有API级别都需要WRITE_EXTERNAL_STORAGE
权限。