最近在写一个类似朋友圈的功能,然后在GitHub上找到了一个很好用的开源项目,链接如下https://github.com/lovetuzitong/MultiImageSelector。
项目用的小米手机测试,过程中发现用手机拍完照后无法正确返回数据,下面是解决方案。
1、修改MultiImageSelectorActivity.java文件中的onCameraShot(File imageFile),需要加入一行代码用于通知系统更新相册:
@Override
public void onCameraShot(File imageFile) {
if(imageFile != null) {
Intent data = new Intent();
resultList.add(imageFile.getAbsolutePath());
data.putStringArrayListExtra(EXTRA_RESULT, resultList);
setResult(RESULT_OK, data);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(imageFile)));// 刷新系统相册
finish();
}
}
修改后才能正常的从相册中看到刚拍的照片。
2、修改FileUtils.java:
File pic = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);//改为下面语句
File pic = null;
pic = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM+ "/Camera");
if (!pic.exists()) {
pic = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
}
这样保证正确的把照片保存到系统相册中。