Я использую Storage Access Framework в Android для выбора изображений и загрузки в свое приложение. Перед загрузкой этих изображений на свой сервер я также обрабатываю эти изображения (изменяю размер). Однако в URI, возвращаемом SAF, не добавлено расширение, я не знаю, как получить расширение файла. Мне нужно различать png и jpeg. Как я могу этого добиться? Пример uri, возвращенного из SAF - content://com.android.providers.media.documents/document/image%3A245309
Мой код выглядит примерно так
if (resultData != null) {
final ClipData clipData = resultData.getClipData();
int takeFlags = resultData.getFlags();
takeFlags &= (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
ArrayList<Uri> uris = new ArrayList<Uri>();
if(clipData != null){
for (int i = 0; i < clipData.getItemCount(); i++) {
ClipData.Item item = clipData.getItemAt(i);
Uri dataUri = item.getUri();
if (dataUri != null) {
uris.add(dataUri);
Log.d(TAG, "File URI : " + dataUri.toString());
}
}
}else{
Uri dataUri = resultData.getData();
if (dataUri != null) {
uris.add(dataUri);
}
}
processFiles(uris);
}
2 ответа
Мне нужно различать png и jpeg. Как я могу этого добиться?
Позвоните getType()
на ContentResolver
, переходящий в Uri
. Это вернет тип MIME, связанный с содержимым, например image/png
.
Использовать Simple Storage намного проще:
MediaFile file = new MediaFile(context, uri);
String extension = file.getExtension();
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.