Если вы разработчик Android и работаете с MediaStore, вы можете столкнуться с ситуацией, когда вам нужно получить идентификатор документа из Uri. В этой статье блога мы рассмотрим несколько способов выполнения этой задачи, используя простой язык и примеры кода.
Метод 1: разделение Uri
Один простой подход — разделить строку Uri и извлечь идентификатор документа. Вот пример:
public String getDocumentIdFromUri(Uri uri) {
String[] parts = uri.toString().split("/");
return parts[parts.length - 1];
}
Метод 2: запрос ContentResolver
Другой способ получить идентификатор документа — использовать запрос ContentResolver. Этот метод полезен, когда у вас есть более сложные требования, такие как фильтрация по типу MIME или другим критериям. Вот пример:
public String getDocumentIdFromUri(Uri uri) {
String documentId = null;
ContentResolver contentResolver = getContentResolver();
Cursor cursor = contentResolver.query(uri, null, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
int index = cursor.getColumnIndex(MediaStore.MediaColumns._ID);
documentId = cursor.getString(index);
cursor.close();
}
return documentId;
}
Метод 3: API DocumentContract
Начиная с уровня Android API 19 (KitKat), вы также можете использовать API DocumentContract для получения идентификатора документа. Вот пример:
public String getDocumentIdFromUri(Uri uri) {
String documentId = null;
String authority = uri.getAuthority();
String[] split = uri.getPath().split("/");
if (split.length >= 2) {
String type = split[1];
if ("document".equals(type)) {
documentId = split[2];
}
}
return documentId;
}
В этой статье мы обсудили три метода получения идентификатора документа из Uri в MediaStore. Первый метод включает разделение строки Uri, второй метод использует запрос ContentResolver, а третий метод использует API DocumentContract. В зависимости от ваших конкретных требований вы можете выбрать метод, который лучше всего соответствует вашим потребностям.
Следуя этим методам, вы сможете легко извлечь идентификатор документа из Uri в MediaStore, что позволит вам работать с нужными документами в вашем приложении Android.