2017-01-11 3 views
-3

Я должен создать приложение для отправки некоторых данных другого человека, которые включают выберите изображение из галереи и сфотографировать с помощью камеры здесь моего кодApp падает, когда экранная галерею и камеры изображение

ivattach.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      startActivityForResult(galleryPhoto.openGalleryIntent(),GALLER_REQUEST); 
     } 
    }); 
    ivCamera.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      try { 
       getFileUri(); 


       startActivityForResult(cameraPhoto.takePhotoIntent(),CAMERA_REQUEST); 
       cameraPhoto.addToGallery(); 
      } catch (IOException e) { 
       Toast.makeText(getApplicationContext(),"Somthing Wrong",Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 
} 
@Override 
protected void onActivityResult(int requestCode, int resultCode, final Intent data) { 
    // try { 
     if (resultCode == RESULT_OK) { 
      if (requestCode == CAMERA_REQUEST) { 

       photopath = cameraPhoto.getPhotoPath(); 
       Log.d(TAG, photopath); 
       photoname.setText(photopath); 
      } else if (requestCode == GALLER_REQUEST) { 
       Uri uri = data.getData(); 

       System.out.println("this is gallery image "+uri); 
       galleryPhoto.setPhotoUri(uri); 
       gphotopath = galleryPhoto.getPath(); 
       filename.setText(gphotopath); 
      } 
     } 

код работает в KitKat и леденец, но приложение является сбоем при использовании Samsung Note5 и зефира я не знаю, что случилось с моим кодом, пожалуйста, помогите мне найти решение этой проблемы заранее спасибо
здесь ошибка я получаю

E/AndroidRuntime: FATAL EXCEPTION: main 
       Process: com.example.jijoabraham.informe, PID: 2525 
       java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=22131, result=-1, data=Intent { dat=content://com.android.providers.media.documents/document/image:33233 flg=0x1 }} to activity {com.example.jijoabraham.informe/com.example.jijoabraham.informe.Sales}: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=2525, uid=10347 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission() 
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4925) 
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4968) 
        at android.app.ActivityThread.access$1600(ActivityThread.java:222) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1849) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:158) 
        at android.app.ActivityThread.main(ActivityThread.java:7229) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
       Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=2525, uid=10347 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission() 
        at android.os.Parcel.readException(Parcel.java:1620) 
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183) 
        at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135) 
        at android.content.ContentProviderProxy.query(ContentProviderNative.java:421) 
        at android.content.ContentResolver.query(ContentResolver.java:502) 
        at android.content.ContentResolver.query(ContentResolver.java:445) 
        at com.kosalgeek.android.photoutil.RealPathUtil.getDataColumn(RealPathUtil.java:131) 
        at com.kosalgeek.android.photoutil.RealPathUtil.getRealPathFromURI_API19(RealPathUtil.java:62) 
        at com.kosalgeek.android.photoutil.GalleryPhoto.getPath(GalleryPhoto.java:49) 
        at com.example.jijoabraham.informe.Sales.onActivityResult(Sales.java:143) 
        at android.app.Activity.dispatchActivityResult(Activity.java:7137) 
        at android.app.ActivityThread.deliverResults(ActivityThread.java:4921) 
        at android.app.ActivityThread.handleSendResult(ActivityThread.java:4968)  
        at android.app.ActivityThread.access$1600(ActivityThread.java:222)  
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1849)  
        at android.os.Handler.dispatchMessage(Handler.java:102)  
        at android.os.Looper.loop(Looper.java:158)  
        at android.app.ActivityThread.main(ActivityThread.java:7229)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)  
+0

показать свой LogCat –

+0

добавьте ошибку –

+1

1. Когда вы говорите слово 'crash', вы должны дать StackTrace. Где это? 2. Используете ли вы последний SDK? –

ответ

0

В Marshmallow и выше вам нужно проверить разрешения во время выполнения.

Вы можете использовать библиотеки как SimplePermissions для достижения этой цели

Смежные вопросы