Выберите изображение из галереи, путь не работает? - PullRequest
0 голосов
/ 21 июня 2019

Я использую следующий код, но не получаю путь к изображению? Я видел код во многих вопросах и ответах StackOverflow, и я протестировал на Android API 19 и API 22. Он работает там, но не работает в Android 8 или выше. Пожалуйста, помогите мне.

 private void selectImage() {
    Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(intent, PICK_FILE_REQUEST_CODE);
}

Следующий код предназначен для onActivityResult.

 @Override
public void onActivityResult(final int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode == CAMERA_REQUEST_CODE && resultCode== Activity.RESULT_OK){

    }

    //Picking file from memory
     if(requestCode == PICK_FILE_REQUEST_CODE && resultCode== Activity.RESULT_OK){

         Uri uri = data.getData();
         File imageFile = new File(getPathFromURI(uri));
         final double imageSize = (imageFile.length()+0.0)/(1024+0.0);

         try {

             //Compressing
             Bitmap bitmap = SiliCompressor.with(getActivity()).getCompressBitmap(getPathFromURI(uri));

             onPhotoSelectedListener.getImageBitmap(bitmap, imageSize);

         } catch (Exception e) {
             /*
             Glide.with(getContext()).asBitmap().load(uri).into(new SimpleTarget<Bitmap>() {

                 @Override
                 public void onResourceReady(@NonNull Bitmap resource, Transition<? super Bitmap> transition) {

                     onPhotoSelectedListener.getImageBitmap(resource, imageSize);

                 }
             });
             */

         }



         getDialog().dismiss();

     }

}


 /*----------------------------------------------------------------------*/

public String getPathFromURI(Uri contentUri) {
    String res = null;
    String[] proj = {MediaStore.Images.Media.DATA};
    Cursor cursor = getActivity().getContentResolver().query(contentUri, proj, null, null, null);
    if (cursor.moveToFirst()) {
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        res = cursor.getString(column_index);
    }
    cursor.close();
    return res;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...