Android 6.0 访问图库时,报错 requires android.permission.READ_EXTERNAL_STORAGE异常
程序员文章站
2022-04-19 21:34:46
android 6.0 访问图库时,报错 requires android.permission.read_external_storage异常。
代码如下:
/**...
android 6.0 访问图库时,报错 requires android.permission.read_external_storage异常。
代码如下:
/** * 打开图库 * @param context * @param requestcode */ public static void opengallery(activity context, int requestcode) { intent intent = new intent(intent.action_pick, null); intent.setdataandtype(mediastore.images.media.external_content_uri,"image/*"); context.startactivityforresult(intent, requestcode); }
以上代码很简单,使用intent开启图库,挑选图片,运行效果很不理想。
android 7.0模拟器上,报错:
11-10 10:07:02.241 4449-4468/? e/databaseutils: writing exception to parcel java.lang.securityexception: permission denial: reading com.android.providers.media.mediaprovider uri content://media/external/file from pid=4337, uid=10049 requires android.permission.read_external_storage , or granturipermission() at android.content.contentprovider.enforcereadpermissioninner(contentprovider.java:608) at android.content.contentprovider$transport.enforcereadpermission(contentprovider.java:483) at android.content.contentprovider$transport.query(contentprovider.java:212) at android.content.contentprovidernative.ontransact(contentprovidernative.java:112) at android.os.binder.exectransact(binder.java:565)
在androidmanifest.xml中添加权限:
其次,在android 6.0及其以上,需要动态赋予权限。
注意点:
若是程序中已经赋予写入权限,则不需要在写读取权限。写入权限已经包含了读取权限。