Как я могу загрузить все музыкальные файлы с внешнего хранилища на Android?

#android #kotlin

#Android #котлин

Вопрос:

Я пытаюсь прочитать все песни из внешнего хранилища с помощью ContentResolver?.запрос(), но каждый раз, когда я запускаю приложение, мой запрос пуст. Он просто переходит от if(ResultSet.moveToFirst()) к ResultSet?.закрыть(). Вот мой код и экран отладки ниже:

 override fun onCreateView(  inflater: LayoutInflater, container: ViewGroup?,  savedInstanceState: Bundle? ): View? {  // Inflate the layout for this fragment  val view = inflater.inflate(R.layout.fragment_tracks_tab, container, false)   permissionSetup()    val uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI  val selection = MediaStore.Audio.Media.IS_MUSIC   " != 0"  val projection = arrayOflt;Stringgt;(  MediaStore.Audio.AudioColumns._ID,  MediaStore.Audio.AudioColumns.TITLE,  MediaStore.Audio.ArtistColumns.ARTIST  )    val resultSet : Cursor? = activity?.applicationContext?.contentResolver?.query(uri, projection, selection, null, null)  if (resultSet != null) {  if(resultSet.moveToFirst()) {  do {  val url = resultSet.getString(0)  val artist = resultSet.getString(1)  val title = resultSet.getString(2)   listSong.add(SongInfo(title, artist, url))  } while (resultSet.moveToNext())  }  }  resultSet?.close()  

введите описание изображения здесь

Если это важно, я пишу в фрагменте вкладки, и мое эмуляторное устройство-Pixel 4XL с Android 11.0 API 30. Пожалуйста, помогите мне, я уже перепробовал все, что смог найти.

Комментарии:

1. using contentResolver?.query() ? Для начала вы должны сказать, к кому хотите обратиться с запросом. Инструмент, который вы используете для получения информации, менее релевантен, чем информация о том, от какого поставщика вы хотите получить некоторую информацию.