2

「.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」ファイルをスキャンしませんか? 私は何をすべきか?

ご協力ありがとう御座います。

4

0 に答える 0