3

我不明白为什么这个光标在这个特定的设备中是空的。但适用于所有其他安卓设备。SD卡上有几个音频文件,股票媒体播放器可以找到并播放这些歌曲。

Cursor c = managedQuery(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, new String[] { "distinct " + MediaStore.Audio.Media.ALBUM, MediaStore.Audio.Media.ARTIST, MediaStore.Audio.Media.ALBUM_KEY, MediaStore.Audio.Media.ALBUM_ID}, 
                null,
                null, 
                MediaStore.Audio.Media.ARTIST);

ambling 图书播放器(我猜他们只是遍历文件夹并进行自己的 id3 解析)和股票 android 音乐播放器都能找到音乐,但我无法从 mediastore 获得任何东西。不存在“.nomedia”文件,我尝试将新的 mp3 文件插入新文件夹。

4

2 回答 2

4

我在 HTC Incredible 上遇到了同样的问题,遗憾的是 DJC 的回答对我不起作用。EXTERNAL_CONTENT_URI 和 INTERNAL_CONTENT_URI 都没有给我任何图像。经过一番挖掘,我发现通过使用以下内容 URI,它似乎确实适用于 HTC Incredible。

Uri contenturi = Images.Media.getContentUri("phoneStorage");
于 2011-04-10T16:16:46.817 回答
2

我遇到过类似的情况,并发现了几个尚未证明令人满意的答案。

媒体扫描器运行以响应系统触发的广播 Intent ACTION_MEDIA_MOUNTED,这发生在引导期间。所以要检查的第一件事是重新启动。

据我了解,扫描仪还将在设置>管理应用程序>媒体存储>清除数据之后运行-并从存储中重新填充媒体存储。我试过了,但它没有任何效果。我当然不能保证安全,也不会在非开发设备上这样做。

也可以手动

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

并在观看意图 ACTION_MEDIA_SCANNER_FINISHED 的广播时发出某种通知。

如果您自己导入媒体,请查看MediaScannerConnection以启动扫描仪。

哦,如果您打算使用 Google 的 Nexus 等设备,则需要处理 INTERNAL_CONTENT_URI。

于 2011-02-11T20:50:17.753 回答