簡體   English   中英

權限拒絕:不允許在android中發送廣播

[英]Permission Denial: not allowed to send broadcast in android

我創建了一個簡單的相機應用程序。 除了Android 4.4之外,它在Android的所有版本中都能正常運行。 當我從相機應用程序拍照時,我收到以下錯誤。

java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED from pid=26089, uid=10120

出現錯誤:

在以下地方:

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

如何為KITKAT解決這個問題?

讓我知道!

謝謝!

如何為KITKAT解決這個問題?

該代碼從未適用。 幸運的是,Android(最終)采取措施阻止應用程序欺騙更多這樣的系統廣播。

如果您想告訴Android索引您放在外部存儲上的文件,請使用MediaScannerConnectionACTION_MEDIA_SCANNER_SCAN_FILE

我解決了這個問題,你可以用這個:

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

希望這可以幫到你 !

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

                }
            });

簡短的回答:你不能,至少不容易。

許多應用程序在更改一個文件后使用此意圖重新掃描整個文件系統,這大大耗盡了電池壽命。 從Android 4.4開始,只有系統應用程序現在可以使用它。 您可能必須找到不使用此意圖的解決方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM