哈哈,标题有点长,之所以这样是为了能让遇到同样问题的人方便搜索到,我自己就遇到这样的问题一直搜索不到。
我先讲一下自己遇到的问题:因为我的app有需求要拍照并且保存起来,然后我为了方便用户去相册统一查看和导出,我就自己在手机里面新建了一个文件夹,把我拍摄的照片放到这个文件夹里面。测试的时候拍完照片,我去那个文件夹看了,文件是存在的。我就觉得没有问题了,没有测试导出。然后用户反馈说,用华为手机助手(用户手机是华为手机)导入你的照片提示导出失败,然后我自己就开始测。
(1)导出失败:
我用华为手机助手导出的时候确实导出失败了,甚至导致华为手机助手闪退,,,哈哈,看来他们也是有bug的。原因是因为我的照片命名不对,我用uuid + 日期和时分秒,但是我的时分秒里面带了冒号,,,,所以就不行。
错误示例:
ahsjhsahsjksajs_20181024_10:02:36.jpg
正确示例:
ahsjhsahsjksajs_20181024_100236.jpg
然后文件就可以通过华为手机助手导出了。
(2)刚刚用代码调用系统相册去拍照,然后我用USB 连上电脑,在电脑里面去访问我的存放照片的那个文件夹,居然看不到我刚刚拍摄的那张照片(或者是看的到,但是文件大小显示0KB,双击用电脑的照片浏览工具查看照片提示照片不存在),是因为拍完照之后没有用代码去刷新相册:
public static void refreshAlbum(String path) {
String[] split = path.split("/");
String fileName = split[split.length - 1];
//正确修改图片详情显示时间
try {
MediaStore.Images.Media.insertImage(Visor.getApplicationContext().getContentResolver(), path, fileName, null);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// 最后通知图库更新
Visor.getApplicationContext().sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path)));
}
,刷新一下就不会出现0KB或者1970问题了。