У меня есть код, который извлекает имя плейлиста и идентификаторы из медиастора. Раньше он работал нормально, но теперь он как-то переставал работать.Код плейлиста для Android не работает
условие if возвращает false, и код всегда пропускает часть do-while и возвращает пустой arraylist , и если я не использую условие if, тогда он дает ошибку в строке «String plName = c.getString (c. getColumnIndex (MediaStore.Audio.Playlists.NAME));» линия. Любые идеи, почему это так?
Для понимания. Список воспроизведения - это класс java, который я создал, в котором хранятся имя и идентификатор списка воспроизведения. Заголовки являются списком воспроизведения типа ArrayList.
код-
ContentResolver resolver = getActivity().getContentResolver();
Uri playlists = MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI;
Cursor c = resolver.query(playlists, null, null, null, null);
long playlistId = 0;
c.moveToFirst();
if(c!=null && c.moveToFirst()) {
do {
String plName = c.getString(c.getColumnIndex(MediaStore.Audio.Playlists.NAME));
playlistId = c.getLong(c.getColumnIndex(MediaStore.Audio.Playlists._ID));
Titles.add(new Playlist(playlistId, plName));
} while (c.moveToNext());
}
c.close();
Благодарим за помощь. но я до сих пор не понимаю, почему это создает проблему. –
Скорее всего, это связано с контекстом. Можете ли вы опубликовать ошибку, которую вы получите без инструкции if? – Theo
Спасибо за помощь мне и большое спасибо StackOverflow Вот мое окончательное приложение в Play Маркете. Проверьте его «Geet» - https://play.google.com/store/apps/details?id=com.GeetMusicSGLabs –