1

メディア フォルダ (具体的には DCIM/カメラ) 内の一部のファイルを変更するアプリケーションがあります。

これらの変更を行った後、アプリケーションはこのブロードキャストを送信して MediaScanner を強制的に実行し、ギャラリー アプリが次回開かれたときに変更が反映されるようにします。

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

これは、標準の android を実行しているデバイスで完璧に機能します。ただし、motoblur を備えたデバイスでは失敗し、ログに次の出力が表示されます。

Permission Denial: broadcasting Intent { act=android.intent.action.MEDIA_MOUNTED dat=file:///mnt/sdcard } from com.my.package (pid=20882, uid=10109) requires com.motorola.blur.service.blur.Permissions.INTERACT_BLUR_SERVICE due to registered receiver BroadcastFilter{40a444c8 ReceiverList{40a22888 13696 com.motorola.blur.service.blur/10023 remote:40a340b8}}

INTERACT_BLUR_SERVICEこの許可を使用する方法はありますか? または、メディア スキャナをコマンドで実行できるようにする他の方法はありますか?

4

2 に答える 2

0

メディアスキャナーをトリガーする方法を見つけられませんでした。しかし、SDカード上のファイルを削除するだけでなく、画像やビデオを削除する別の方法を指摘されました。現在、ContentResolverを使用してメディアを削除しています。

これが私がそれを行った方法の抜粋です:

        //Uri imgUri = Uri.parse("content://android.provider.MediaStore.Images.Media");
        ContentResolver cr = getContentResolver();
        int count = cr.delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null);
        count += cr.delete(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null);
        Log.i(myTag, "Deleted " + count + " files from media database");
于 2012-02-01T16:51:09.463 に答える
0

AndroidManifest問題を解決するためにこのアクセス許可を追加する必要はありませんか?...次のように:

<uses-permission android:name=
         "com.motorola.blur.service.blur.Permissions.INTERACT_BLUR_SERVICE"/>
于 2012-01-05T16:35:18.040 に答える