getContentResolver() значение null для данных, но правильное получение имени

#android #android-intent #android-contentprovider #android-contentresolver #android-intent-chooser

#Android #android-намерение #android-contentprovider #android-contentresolver #android-intent-chooser

Вопрос:

Я не могу прочитать часть данных из Uri выбранного изображения, это происходит на каком-то конкретном устройстве Lg nexus 5 api 6.0.1

Uri выбранного изображения

 content://com.google.android.apps.photos.contentprovider/-1/1/content://media/external/images/media/200/ORIGINAL/NONE/2077196451
  

Код, используемый для получения данных из uri

  public static String getDataColumn(Context context, Uri uri, String selection,
                                       String[] selectionArgs) {

        Cursor cursor = null;
        final String column = "_data";
        final String[] projection = {
                column
        };

        try {
            cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs,
                    null);
            if (cursor != null amp;amp; cursor.moveToFirst()) {
                final int index = cursor.getColumnIndexOrThrow(column);
                return cursor.getString(index);
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        finally {
            if (cursor != null)
                cursor.close();
        }
        return null;
    }
  

Не проблема с обработкой разрешений, предоставляются необходимые разрешения.

Комментарии:

1. ваш Uri сломан: content://com.google.android.apps.photos.contentprovider/-1/1/content://media/external/images/media/200/ORIGINAL/NONE/2077196451 — это должно быть либо content://com.google.android.apps.photos.contentprovider/-1/1/ или content://media/external/images/media/200/ORIGINAL/NONE/2077196451

2. Получение этого исключения Permission Denial: reading com.google.android.apps.photos.contentprovider.impl.MediaContentProvider uri content://com.google.android.apps.photos.contentprovider/-1/1/ from pid=26928, uid=10168 requires the provider be exported, or grantUriPermission()

3. используя этот content://media/external/images/media/200/ORIGINAL/NONE/2077196451

4. @pskink Intent getIntent = new Intent(Intent.ACTION_GET_CONTENT); getIntent.setType("application/pdf"); Intent pickIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI).setType("image/*"); Intent chooserIntent = Intent.createChooser(getIntent, "Select File"); chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {pickIntent}); activity.startActivityForResult(chooserIntent, REQUEST_PICK_FILE);