Константа MediaStore.MediaColumns.DISPLAY_NAME
разрешается в строку "_display_name"
. Массив, который вы вводите в эту строку, используется для выбора столбцов, которые вы хотите получить с помощью запроса. Поведение null
для этого параметра может отличаться для разных телефонов? Вернуть все колонки (как это должно быть в соответствии с javadoc) телефонами HTC и ни один для других?
Javadoc утверждает, что вы должны получить определенные столбцы по соображениям производительности. Ничего не возвращая аргумент null
, производители могут захотеть применить эту оптимизацию производительности.
Это должно работать на всех телефонах:
public static String getContentName (ContentResolver resolver, Uri uri) {
Cursor cursor = resolver.query(uri,
new String[]{MediaStore.MediaColumns.DISPLAY_NAME}, null, null, null);
cursor.moveToFirst();
int nameIndex = cursor.getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME);
if (nameIndex >= 0) {
return cursor.getString(nameIndex);
}
return null;
}
Я не могу проверить это, потому что у меня есть только телефон HTC:).