调用相机拍照之后,图片是可以显示出来的,但在手机相册中找不到拍下来的图片,虚拟机上可以,真机不行。。
// 记录文件保存位置
private String mFilePath;
// 获取SD卡路径
mFilePath = Objects.requireNonNull(BaseApplication.getAppContext().getExternalCacheDir()).getPath();
// 文件名
mFilePath = mFilePath + "/" + "photo.jpg";
点击按钮拍照
// 打开系统拍照程
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 加载路径
Uri uri = Uri.fromFile(new File(mFilePath));
// 指定存储路径
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
// 拍照返回图片
startActivityForResult(intent, CAMERA);
在onActivityResult方法中
try {
// 获取输入流
is = new FileInputStream(mFilePath);
// 把流解析成bitmap
Bitmap bitmap = BitmapFactory.decodeStream(is);
Image.setImageBitmap(bitmap);
saveImage(bitmap);
} catch (FileNotFoundException e) {
ToastUtils.showToast("文件保存失败!");
} finally {
// 关闭流
try {
is.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
将图片保存在本地存储中
private String saveImage(Bitmap bitmap) throws FileNotFoundException {
long millis = System.currentTimeMillis();
String path = this.getExternalCacheDir() + "/"+String.valueOf(millis)+".jpg";
Log.e("TAG", "path = " + path);
try {
FileOutputStream fos = new FileOutputStream(path);
// bitmap压缩(压缩格式、质量、压缩文件保存的位置)
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
} catch (FileNotFoundException e) {
ToastUtils.showToast("文件保存失败");
e.printStackTrace();
}
return path;
}

你的手机版本是Android 几?
你的app target sdk是多少啊