好的,我现在已经连续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文件的文件存储。
答案 0 :(得分:0)
嗯,我想我唯一可以做的就是完全不依赖MediaStore。人们必须直接访问存储。我看不到其他解决方案。