权限拒绝:不允许在android中发送广播

The*_*Man 12 android android-camera

我创建了一个简单的相机应用程序.除了Android 4.4之外,它在Android的所有版本中都能正常运行.当我从相机应用程序拍照时,我收到以下错误.

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED from pid=26089, uid=10120
Run Code Online (Sandbox Code Playgroud)

出现错误:

在以下地方:

sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory())));
Run Code Online (Sandbox Code Playgroud)

如何解决KITKAT的这个问题?

让我知道!

谢谢!

Com*_*are 20

如何解决KITKAT的这个问题?

该代码从未适用.幸运的是,Android(最终)采取措施阻止应用程序欺骗更多这样的系统广播.

如果您想告诉Android索引您放在外部存储上的文件,请使用MediaScannerConnectionACTION_MEDIA_SCANNER_SCAN_FILE.


Car*_*arl 10

我解决了这个问题,你可以用这个:

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

希望这可以帮到你 !


小智 5

Android 会阻止应用发送像 ACTION_MEDIA_SCANNER_SCAN_FILE 或 ACTION_MEDIA_MOUNTED 这样的广播。请改用 MediaScannerConnection 的静态方法 scanFile。

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

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

                }
            });
Run Code Online (Sandbox Code Playgroud)