通常在保存图片入图库时,想要达到及时查看保存图片的效果:
一般会通过intent的方法发送广播去扫描SD卡:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MEDIA_MOUNTED);
intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory()));
sendBroadcast(intent);
但是,会抛出异常:
07-21 00:15:27.469: W/System.err(7750): java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.MEDIA_MOUNTED from pid=7750, uid=10100
,由于Android4.4中限制了系统应用才有权限使用广播通知系统扫描SD卡,
根据参考网上资料,自行测试通过扫描SDcard:
解决方法如下:、
1.在androidmanifest.xml中,添加权限:<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
2. 通过下列方式来扫面文件信息
//扫描单个文件
// MediaScannerConnection.scanFile(this, new String[]{Environment.getExternalStorageDirectory()+"/" + file.getName() }, null, null);
//扫描全部文件
MediaScannerConnection.scanFile(this, new String[]{Environment.getExternalStorageDirectory()+""}, null, null);
测试通过