我正在尝试创建一个简单的应用程序,可以从Gallery应用程序获取图像并将其显示在imageButton上.我在运行
Android 5.0.1的手机上使用API 21进行测试.不幸的是,无论我尝试什么,我都会得到一个安全错误 – 即使我指定了权限.
我的代码获取图像是:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent){
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
switch(requestCode){
case PICK_IMAGE_REQUEST:
if(resultCode == RESULT_OK && imageReturnedIntent != null && imageReturnedIntent.getData() != null) {
Uri uri = imageReturnedIntent.getData();
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
// Log.d(TAG, String.valueOf(bitmap));
ImageButton ib = (ImageButton) findViewById(R.id.inputImg);
ib.setImageBitmap(bitmap);
} catch (IOException e) {
e.printStackTrace();
}
}
break;
}
}
当我尝试从Dropbox中选择一个图像时,代码工作,但是当我从画廊中选择一个图像时,我会得到
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/35634 from pid=25240, uid=10070 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
我将READ_EXTERNAL_STORAGE的使用权限标签作为清单的一个小孩:
xmlns:tools="http://schemas.android.com/tools"
package="[REDACTED]">
android:minSdkVersion="14"
android:targetSdkVersion="23" />
[REDACTED]
我在其他帖子中搜索过高低,但仍然无法弄清楚为什么我仍然会遇到这个讨厌的错误.