質問: メディア ストアで DELETED ファイルのエントリを更新する方法を教えてください。
コードで写真を外部ストレージから削除した後、削除した写真のスロットがギャラリーにまだ表示されます - 空白の写真です。
ギャラリーにはメディア ストアが反映されているようで、電話が再起動されるまで、または通常はメディアが再スキャンされるまで、削除された写真がメディア ストアで検出されます。
削除されたファイルをスキャンしようとしても、削除されたファイルのスキャンには役立ちませんでした(新規または既存のファイルに対してのみ機能します): MediaScannerConnection.scanFile(Application.get(), new String[]{file.getPath()}, null, null)
(親フォルダーもスキャンしてみました)。
またACTION_MEDIA_SCANNER_SCAN_FILE
、無駄にしようとしました。例:Application.get().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)))
ブロードキャスト レシーバーを送信して、外部ストレージ全体を再スキャンする (したがって、メディア ストアを更新する) と、うまくいきました。Application.get().sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.fromFile(Environment.getExternalStorageDirectory())))
しかし、 4.4の時点で、ACTION_MEDIA_MOUNTED システム ブロードキャストを手動で送信しようとすると、Android がセキュリティ例外をスローするようです。@CommonsWare の投稿を参照してください: http://commonsware.com/blog/2013/11/06/android-4p4-permission-regressions.html
そのため、ファイル(/写真/ビデオ/など)の削除時にメディアストアを更新するための解決策がありません。