Media scanning
So far, after recording on downloading new media file in order to make system see this file developer had to fire broadcast:
1 |
<span class="pln">sendBroadcast</span><span class="pun">(</span><span class="kwd">new</span> <span class="typ">Intent</span><span class="pun">(</span><span class="typ">Intent</span><span class="pun">.</span><span class="pln">ACTION_MEDIA_MOUNTED</span><span class="pun">,</span> <span class="typ">Uri</span><span class="pun">.</span><span class="pln">parse</span><span class="pun">(</span><span class="str">"file://"</span> <span class="pun">+</span><span class="pln"> context</span><span class="pun">.</span><span class="pln">getExternalFilesDir</span><span class="pun">(</span><span class="kwd">null</span><span class="pun">))));</span> |
But now, instead of scan proccess, one can get
1 |
java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED |
The simplest solution to get rig of this exception is to use MediaScanner:
1 2 3 4 5 6 7 8 9 10 11 12 |
public static void scanFile(Context context, String path) { MediaScannerConnection.scanFile( context.getApplicationContext(), new String[]{ path }, null, new MediaScannerConnection.OnScanCompletedListener() { @Override public void onScanCompleted(String path, Uri uri) { Log.e(TAG, "file " + path + " was scanned successfully: " + uri); } }); } |