背景: Android 4.4 で、Google はアプリに SD カードへの書き込みアクセスを許可しないことを決定しました。
ただし、アプリは /SDCard/Android/data/App Package Name に書き込むことができます。
これが私がやったことです。MP3 ファイルを /Android/data/ に書き込みました。次に、この MP3 ファイルを Android ミュージック プレーヤーに表示します。
私は次のことを試しました...
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://") + filePath)));
と....
MediaScannerConnection.scanFile(これ、 new String[] { file.toString() }, new String[] {"audio/*"}, 新しい MediaScannerConnection.OnScanCompletedListener() { public void onScanCompleted(String path, Uri uri) { Log.i("ExternalStorage", "スキャンされた " + パス + ":"); Log.i("ExternalStorage", "-> uri=" + uri); } });
と...
ContentResolver.requestSync(CreateSyncAccount(context), MediaStore.AUTHORITY, null);
どちらも content://media/external/file/xxxxx のような URI を持つファイルとしてファイルを MediaStore に追加します。
ただし、ファイルはオーディオとして追加されません。MediaStore を更新してファイルをオーディオとして宣言できますが、ファイルのメタデータがインポートされません。
独自のタグ リーダーを作成する以外に、内部メモリや KitKat 以前の SD カードと同様に、メディア スキャナでファイルをスキャンしてメタデータを挿入するにはどうすればよいですか?