问题:删除图片时,华为mate30出现下拉栏如下图的提示
(该截图引用于此文章)
原因:这里其实是华为mate30已经删除了图片,但是系统重新将图片保存在删除的列表,为的是防止用户误删
(该截图也是引用于此文章)
解决方法:
通过修改保存路径,不保存到本地了,将其保存到Cache(如果你只是想暂时保留一些数据而不是对它们对持久化存储,你可以使用Cache来短暂性的存储这些数据 (Android 内部存储和Cache简单介绍))原本的保存路径 path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) .getPath() + File.separator + SAVE_Folder; 修改后-成功解决,不会再出现下拉栏的检测删除提示 //两个参数,第一个得到cache的绝对路径,第二个参数是文件名 File file=new File(mController.getActivity().getCacheDir(),timeStamp +".jpg");
// 写入(bitmap保存为图片文件)
public File saveSingleFile(Bitmap bitmap){
// 创建时间字符串
String timeStamp = date_time_String();
//两个参数,第一个得到cache的绝对路径,第二个参数是文件名
File file=new File(mController.getActivity().getCacheDir(),timeStamp +".jpg");
if (!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
FileOutputStream outputStream= null;
try {
outputStream =new FileOutputStream(file);
bitmap.compress(Bitmap.CompressFormat.JPEG,100,outputStream);
outputStream.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return file;
}
// 时间戳字符串
public static String date_time_String(){
return new SimpleDateFormat("yyyyMMdd_HHmmss_SSS").format(new Date());
}
// 使用接口
public File saveSingleImageFile(Bitmap bitmap) {
if(bitmap == null){ return null; }
return saveSingleFile(bitmap);
}
//---------------------------------------------------------------------
//在需要保存的位置添加调用该方法
File file = saveSingleImageFile(bitmap);
学习参考资料-感谢各位大大的分享文章!!
bitmap和图片文件的转换
Android 内部存储和Cache简单介绍
华为手机提示 系统发现xxx删除照片提示 如何不提示,且不保存在最近删除列表
Android数据存储——Cache存储