[英]Image retrieved from gallery is unable to load onto the image view
我是Android的初學者,我在做一個簡單的應用程序,能夠將圖像上傳到服務器,並且無法將圖像從圖庫中加載到ivImage圖像視圖中。 這是我的代碼,下面是錯誤。
public class Home extends AppCompatActivity implements View.OnClickListener{
private static final int RESULT_LOAD_IMAGE = 1;
ImageView ivUpload, ivGallery, ivImage;
EditText etItemdesc,etItemname;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
ivImage = (ImageView) findViewById(R.id.ivImage);
ivUpload = (ImageView) findViewById(R.id.ivUpload);
ivGallery = (ImageView) findViewById(R.id.ivGallery);
etItemdesc = (EditText) findViewById(R.id.etItemdesc);
etItemname = (EditText) findViewById(R.id.etItemname);
ivGallery.setOnClickListener(this);
ivUpload.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.ivGallery:
Intent galleryIntent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(galleryIntent,RESULT_LOAD_IMAGE);
break;
case R.id.ivUpload:
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode ==RESULT_OK && data!= null){
Uri selectedImage = data.getData();
ivImage.setImageURI(selectedImage); //error is on this row
}
}
}
這是錯誤
Unable to open content: content://media/external/images/media/42
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/42 from pid=3098, uid=10058 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1599)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:146)
at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:692)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1104)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:942)
at android.content.ContentResolver.openInputStream(ContentResolver.java:662)
at android.widget.ImageView.resolveUri(ImageView.java:832)
at android.widget.ImageView.setImageURI(ImageView.java:449)
at chengweifeng1132701116.fyp.Home.onActivityResult(Home.java:52)
at android.app.Activity.dispatchActivityResult(Activity.java:6428)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3695)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3742)
at android.app.ActivityThread.-wrap16(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
您忘記添加此權限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
如果您正在api20 +上進行測試,請確保添加運行時許可。 請參閱此處的文檔: https : //developer.android.com/training/permissions/requesting.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.