「.m3u」ファイルを作成するアプリを書いています。アプリの実行の最後に、新しいメディア (m3u) ファイルをスキャンしようとしました。最初はsendBroadcast関数を使用していました:
Intent UpdateMediaIntent;
UpdateMediaIntent = new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory()));
sendBroadcast(UpdateMediaIntent);
Android を 4.3 から 4.4 Kitkat に更新した後、このコードでアプリケーションがクラッシュします。
not allowed to send broadcast android.intent.action.MEDIA_MOUNTED
私はインターネットで次の解決策を見つけました:
MediaScannerConnection.scanFile(this,
new String[] { file.toString() }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
上記のコードはアプリをクラッシュさせませんが、「.m3u」ファイルをスキャンしません。プレイリストを作成しましたが、アプリケーション (メディア プレーヤー) に表示されません。sendBroadcast を使用していたときは、すべて問題ありませんでした。MediaScannerConnection コードの何が問題になっていますか? ファイルがスキャンされたというログが表示されますが、uri が null です。MediaScannerConnection は「.m3u」ファイルをスキャンしませんか? 私は何をすべきか?
ご協力ありがとう御座います。