我的应用程序中有一个标签,其中列出了所有可用的歌曲。但是,我收到一些用户的抱怨,即文件管理器中可见的某些歌曲没有显示。这是我使用的游标
public static Cursor getAllSongsCursor(Context mContext){
String selection= MediaStore.Audio.Media.DURATION + " >=" + minTimeSongLimit;
String sortBy = SortArgFactory.getSortBy(FactoryConstants.TRACKS);
Cursor cursor = mContext.getApplicationContext().getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
null,
selection,
null,
sortBy);
return cursor;
}
我无法弄清楚为什么此光标查询未显示所有符合选择条件的歌曲。
任何帮助将不胜感激。
(我曾尝试向不同的客户提供多个补丁,但几乎总是他们不跟进,并且它在我们所有的测试场景中都能正常工作)
答案 0 :(得分:0)
您正在查询的mediaDatabase可能不被刷新(更新),因此您无法看到所请求的媒体。
您可以触发刷新媒体。 请看下面的问题。
How can I refresh MediaStore on Android?
上述问题的代码段
MediaScannerConnection.scanFile(
context,
new String[]{ pathToFile1, pathToFile2 },
new String[]{ "audio/mp3", "*/*" },
new MediaScannerConnectionClient()
{
public void onMediaScannerConnected()
{
}
public void onScanCompleted(String path, Uri uri)
{
}
});