【发布时间】:2016-12-20 06:11:34
【问题描述】:
好的,我已经连续 8 个小时研究这个问题了。我正在通过教程测试媒体播放器应用程序。它可以正常工作,但我的 RecyclerView 列表中没有添加的任何新 mp3 文件。我已经搜索并发现我必须通过重新扫描存储来刷新才能从数据库中获得新文件。问题是,我找不到任何适合我的工作方法。我一定浏览过类似问题的 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 文件的文件存储。
【问题讨论】:
-
我不明白。做我想做的事是不可能的吗?重新启动设备甚至不会触发媒体存储重新扫描/刷新。对 google\Android 开发者感到羞耻。
标签: android mediastore scanning