Uri uri = MediaStore.Audio.Artists.Albums.getContentUri("external",
artistId);
String[] projection = new String[] {BaseColumns._ID};
Cursor cursor =
mContext.getApplicationContext().getContentResolver().query
(uri,
projection,
null,
null,
null);
До Android 10 BaseColumns._ID возвращал album_id, а теперь в 10 он возвращает какой-то случайный идентификатор.
Когда я передал проекцию как null и получил все имена столбцов ниже, это имя столбца, которое я получил. Это в Android 10. [numsongs, artist, numsongs_by_artist, album, album_art, album_key, artist_id, maxyear, minyear, album_id]
Нет столбца _id, который был в Android 10 ниже.
Чтобы получить album_id в 10, мне пришлось использовать проекцию ниже
String[] projection = new String[]
{MediaStore.Audio.Artists.Albums.ALBUM_ID};
Для того же Uri ниже представлены доступные столбцы, которые я получаю под Android 10. [album_art, maxyear, minyear, artist, album, artist_key, numsongs_by_artist, _id, numsongs, album_key, artist]
Здесь нет столбца album_id, _id возвращал album_id. Которая сейчас в 10 недоступна.
И теперь мне нужны разные коды, чтобы получить идентификатор альбома, один для Android 10 и один для Android 10 ниже.
И эти изменения нигде не перечислены в поведенческих изменениях Android 10. Это очень важные изменения для нас, такое небольшое изменение может сломать все наше приложение, которым пользуются 1,5 миллиона человек в день.
Как можно так измениться и не дать разработчикам ничего об этом знать? (ИЛИ) Есть ли что-то, чего мне не хватает в документации? (или) Как мне отслеживать эти изменения?