Я хочу создать музыкальный плеер, который может скачать песню онлайн и добавить его в MediaStore. Я использую диспетчер загрузки и разрешаю MediaScanner сканировать этот файл после завершения загрузки.
DownloadManager.Request request ....
request.allowScanningByMediaScanner();
...
downloadManager.enqueue(request);
Он отлично работает в Android 5.0 и выше.
Но песня была загружена с помощью кодека (opus), который не поддерживается в android ниже версии lollipop, поэтому MediaScanner не добавляет этот файл в MediaStore.
Что моя проблема, мое приложение может играть opus codec, но песня не существовала в MediaStore после ее загрузки, поэтому мое приложение не может найти эту песню.
Как заставить MediaScanner добавить загруженный файл в MediaStore.Audio в качестве музыкальной дорожки. Если не удается, как я могу вручную добавить эту песню в MediaStore.Audio после завершения загрузки:
public class BroadcastDownloadComplete extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.DOWNLOAD_COMPLETE")) {
//addSongToMediaStore(intent);
}
}
}