尝试重新扫描音频文件

Trying to rescan for audio files

好的,我已经连续看了 8 个小时了。我正在测试教程中的媒体播放器应用程序。它工作正常,但添加的任何新 mp3 文件在我的 RecyclerView 列表中不可用。我已经搜索并发现我必须通过重新扫描存储来刷新数据库中可用的新文件。问题是,我找不到适合我的工作方法。我一定浏览过 10 个具有相同问题的线程。有些人抱怨 kitkat 4.4 的问题,有些人抱怨 Marshmallow 设备。

广播方案我试过了。它不适用于 Kitkat,因为权限仅限于 Kitkat 上的系统。此外,同样的解决方案导致我丢失了 Lollipop 设备列表中的所有当前记录。我似乎根本无法刷新它。我说的是这个解决方案:

getApplicationContext().sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory()));

我最终又尝试了两种解决方案,但没有成功。我试过这个:

MediaScannerConnection.scanFile(this, new String[] { Environment.getExternalStorageDirectory().toString() }, null, new MediaScannerConnection.OnScanCompletedListener() {
        public void onScanCompleted(String path, Uri uri)
        {

        }
});

我尝试了其他几个解决方案,但都没有成功。是否有任何可行的解决方案来重新扫描 >=api16 上可用的所有 mp3 文件的文件存储。

好吧,我想唯一能做的就是根本不依赖 MediaStore。人们必须直接访问存储。我看不出其他解决方案。