背景:在 Android 4.4 中,Google 决定应用程序不应具有对 SD 卡的写入权限。
但是,应用程序可以写入 /SDCard/Android/data/App 包名称。
所以这就是我所做的。我已将 MP3 文件写入 /Android/data/。然后我希望这个 MP3 文件显示在 Android 音乐播放器中。
我试过以下...
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" +文件路径)));
和....
MediaScannerConnection.scanFile(这个, 新字符串 [] { file.toString() },新字符串 [] {“音频/*”}, 新的 MediaScannerConnection.OnScanCompletedListener() { 公共无效 onScanCompleted(字符串路径,Uri uri){ Log.i("ExternalStorage", "已扫描" + 路径 + ":"); Log.i("外部存储", "-> uri=" + uri); } });
和...
ContentResolver.requestSync(CreateSyncAccount(context), MediaStore.AUTHORITY, null);
这两个都会将文件作为一个文件添加到 MediaStore,其 URI 类似于 content://media/external/file/xxxxx
但是,该文件不会作为音频添加。我可以更新 MediaStore 以将文件声明为音频,但未导入文件元数据。
除了编写我自己的标签阅读器之外,我怎样才能让媒体扫描仪扫描文件并插入元数据,就像它在内部存储器和预 KitKat SD 卡上所做的那样?