Posted at

Android 4.4 KitKat で broadcast MEDIA_MOUNTED が Permission Denial になる対策

More than 5 years have passed since last update.

Android 4.3迄は、SDカードに保存した画像を削除した後、Broadcast を送信して MediaScan を呼ぶことでサムネイルも削除されます。こんな感じです。

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, uriToSD));

もともと筋が悪い方法な事もあるからか、Android 4.4からはこんなエラーが出て使えません。

Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED

場当たり的な策として、Intent.ACTION_MEDIA_SCANNER_SCAN_FILE を使う事で取り敢えずは回避できます。

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uriToSD));

※本来はMediaScannerConnectionを使うのが筋の様です。


参考URL

Permission Denial: not allowed to send broadcast in android - Stack Overflow

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED on KitKat only - Stack Overflow

Android KitKat Permission Denial Error | SHAYDES.DSGN Blog

Android: Refreshing the Gallery after saving new images - Stack Overflow