Я хотел бы показать пользователю средство выбора мультимедиа с соответствующим медиафайлом, для которого пользователь дал разрешение.
Я показываю диалоговое окно разрешения, где пользователь может выбрать, какие изображения/видео он хочет предоставить приложению разрешение на использование. После этого должен появиться еще один инструмент выбора, чтобы пользователь мог выбрать один элемент мультимедиа из этого подмножества, позволяя приложению продолжить запланированное действие.
Моя проблема в том, что приложение < Strong>не показывать только те медиафайлы, на которые пользователь дал разрешение; Вместо этого он показывает ВСЕ медиафайлы на устройстве.
Здесь вы можете увидеть полный процесс со скриншотами.
Вот как Прошу разрешения СМИ:
private void requestPermissionsHelper() {
List permissions = new ArrayList();
permissions.add(Manifest.permission.READ_MEDIA_IMAGES);
permissions.add(Manifest.permission.READ_MEDIA_VIDEO);
permissions.add(Manifest.permission.RECORD_AUDIO);
requestPermissions(permissions.toArray(new String[permissions.size()]), PERMISSION_REQUEST_CODE);
}
И его обратный вызов, здесь нет ничего особенного:
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSION_REQUEST_CODE) {
boolean valid = true;
for (int i = 0; i < grantResults.length; i++) {
int grantResult = grantResults;
valid = valid && grantResult == PackageManager.PERMISSION_GRANTED;
}
if (!valid) {
DialogHelper.showError(this, "You need to grant acces to media files in order to use this function.");
}
}
}
И вот как я пытаюсь показать только тот носитель, на который пользователь дал разрешение, НО ПОКАЗЫВАЕТ ВСЕ МЕДИА НА УСТРОЙСТВЕ:
Intent mediaPickerIntent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
mediaPickerIntent.setType("*/*");
mediaPickerIntent.addCategory(Intent.CATEGORY_OPENABLE);
mediaPickerIntent.putExtra(Intent.EXTRA_MIME_TYPES, new String[]{"image/*", "video/*"});
startActivityForResult(mediaPickerIntent, BROWSE_DEVICE_GALLERY_RC);
Подробнее здесь: https://stackoverflow.com/questions/792 ... mission-to
Отображение средства выбора медиафайлов только с теми медиафайлами, на которые пользователь дал разрешение. ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
IOS: Как узнать, дал ли пользователь согласие на оповещение о захвате экрана?
Anonymous » » в форуме IOS - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-
-
-
IOS: Как узнать, дал ли пользователь согласие на оповещение о захвате экрана?
Anonymous » » в форуме IOS - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-