Невозможно получить курсор для запроса миниатюры для изображений в хранилище - PullRequest
0 голосов
/ 17 января 2019

Я хотел получить эскиз изображений, которые хранятся в /storage/emulated/0/Pictures/xyz/abc.jpg

Вот код:

 String[] proj = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID };

 Cursor cursor = MediaStore.Images.Thumbnails.queryMiniThumbnails(
                        parent.getContext().getContentResolver(), 
                        Uri.fromFile( new File( "/storage/emulated/0/Pictures/xyz/abc.jpg" ) ),           
                        MediaStore.Images.Thumbnails.MINI_KIND, 
                        proj );

  if( cursor != null && cursor.getCount() > 0 ) {
        cursor.moveToFirst();
        String uri = cursor.getString( cursor.getColumnIndex( MediaStore.Images.Thumbnails.DATA ) );
         try {
               cursor.close();
               return MediaStore.Images.Media.getBitmap(parent.getContext().getContentResolver(), Uri.parse(uri));
          } catch (IOException e) {
                e.printStackTrace();
                cursor.close();
                return null;
          }
    }
    else{
      return null;
   }

Всегда cursor size равно 0 и данных нет. parent - это родительский элемент ViewGroup, поскольку он находится внутри, и вы получаете вид сетки.
Есть идеи, почему размер курсора равен 0? Даже пытался использовать getThumbnails API, но тот же результат.

К вашему сведению, когда я использую ThumbnailUtils.extractThumbnail API, все работает.

...