Я хотел бы показать пользователю средство выбора мультимедиа с соответствующим медиафайлом, для которого пользователь дал разрешение.
Я показываю диалоговое окно разрешения, где пользователь может выбрать, какие изображения/видео он хочет предоставить приложению разрешение на использование. После этого должен появиться еще один инструмент выбора, чтобы пользователь мог выбрать один элемент мультимедиа из этого подмножества, позволяя приложению продолжить запланированное действие.
Моя проблема в том, что приложение < 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
Форум для тех, кто программирует под Android
1732453295
Anonymous
Я хотел бы показать пользователю средство выбора мультимедиа с соответствующим медиафайлом, для которого [b]пользователь дал разрешение.[/b]
Я показываю диалоговое окно разрешения, где пользователь может выбрать, какие изображения/видео он хочет предоставить приложению разрешение на использование. После этого должен появиться еще один инструмент выбора, чтобы пользователь мог выбрать один элемент мультимедиа из этого подмножества, позволяя приложению продолжить запланированное действие.
Моя проблема в том, что приложение < 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[i];
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);
Подробнее здесь: [url]https://stackoverflow.com/questions/79220102/showing-a-media-picker-with-only-the-media-the-user-gave-permission-to[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия