我正嘗試創建一個簡單的應用程序,可以從圖庫應用程序獲取圖像並將其顯示在imageButton上。我正在運行Android 5.0.1的手機上使用API 21進行測試。不幸的是,無論我嘗試什麼,我都會收到安全錯誤 - 即使我指定了權限。Android READ_EXTERNAL_STORAGE權限不能正常工作
我爲獲得檢索圖像的代碼是:
@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艙單的孩子:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="[REDACTED]">
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="23" />
<uses-permission tools:node="replace" android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
<application>
[REDACTED]
</application>
</manifest>
我已經在其他帖子上進行了高低搜索,但仍似乎無法弄清楚爲什麼我仍然得到這個令人討厭的錯誤。
閱讀本文http://stackoverflow.com/questions/21196453/external-storage-permission-issue-with-mediaprovider-ring-tones或http://stackoverflow.com/questions/19837358/android-kitkat- security -ception-when-trying-to-reading-from-mediastore –