Музыкальный плеер Android не переиндексируется после добавления песни

Я пытался создать простой MP3-загрузчик для Android. Все, что он делает, – это подключение к URL-адресу, загрузка трека и угадывание информации ID3 на основе имени. Проблема с моим приложением заключается в том, что, как только песня загружается, она не появляется сразу в приложении Google Music или в приложении для музыкальных плееров по умолчанию. Я даже попробовал некоторые другие без везения, они все не переиндексируют его.

Единственное, что я заметил, это то, что когда я скопировал / переместил песню из папки «Музыка» на SD-карте в корневую карту SD-карты, она полностью проиндексировала всю библиотеку. Это дало мне представление о том, что он может не предупредить прослушивателей файлов.

Мой вопрос: как я могу сохранить песню в папке «Музыка» и обновить свои индексы музыкальными проигрывателями? Заранее спасибо.

Вам необходимо уведомить MediaScanner том, что новый файл был добавлен и должен быть проиндексирован, чтобы он отображался в MediaStore .

Самый простой способ – отправить широковещательную рассылку после загрузки файла:

 Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); intent.setData(Uri.fromFile(file)); sendBroadcast(intent); 

http://developer.android.com/reference/android/content/Intent.html#ACTION_MEDIA_SCANNER_SCAN_FILE

Предполагается, что «другие музыкальные плееры» используют MediaStore, но это хорошая ставка, что они делают.