Permission Denial: not allowed to send broadcast in android

Solution 1:

How to fix this issue for KITKAT?

That code has never been appropriate. Fortunately, Android is (finally) taking steps to prevent apps from spoofing more system broadcasts like this.

If you want to tell Android to index a file you put on external storage, either use MediaScannerConnection or ACTION_MEDIA_SCANNER_SCAN_FILE.

Solution 2:

I resolved this problem, you can use this:

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

hope this can help you !

Solution 3:

Android prevents apps from sending broadcast like ACTION_MEDIA_SCANNER_SCAN_FILE or ACTION_MEDIA_MOUNTED. Use static method scanFile of MediaScannerConnection instead.

MediaScannerConnection.scanFile(getApplicationContext(), new String[] { file.getAbsolutePath() }, null, new OnScanCompletedListener() {

                @Override
                public void onScanCompleted(String path, Uri uri) {
                    // TODO Auto-generated method stub

                }
            });

Solution 4:

Short answer: You can't, at least not easily.

A lot of apps used to use this intent to rescan the entire filesystem after changing only one file, which drained battery life considerably. Starting from Android 4.4, only System apps can now use it. You'll likely have to find a workaround that doesn't use this intent.