android相机故障代码解决方法,Android调用相机拍照后无法返回问题处理

本文讲述了在Android应用中,遇到相机拍摄后无法返回问题的案例。通过分析,发现某些手机限制了对系统默认照片保存路径的访问。解决方案是将照片保存至自定义文件夹,确保兼容性。建议开发者在不同设备上测试并使用自定义路径以提升用户体验。
摘要由CSDN通过智能技术生成

转载请注明出处,谢谢

背景

之前开发的一个android软件中调用了相机功能,有用户反映照相后点击确定按钮后无法返回的问题。

问题重现

最后经过自测,在小米2和三星一款手机上重现了这个问题,在其他手机上未发现该问题。

问题解决

出现该问题时,调用的代码如下:

public void shoot(View view) {

if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {

file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),

new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date())+ ".jpg");

startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE).putExtra(

MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)),REQUEST_CODE_SHOOT);

} else {

Util.showToast(this, R.string.sdcard_missing);

}

}

修改为以下,代码运行正常:

public void shoot(View view) {

if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {

File dir = new File(Environment.getExternalStorageDirectory() + "/ycz/pictures");

if(!dir.exists()){

dir.mkdir();

}

file = new File(dir, new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date())+ ".jpg");

startActivityForResult(new Intent(MediaStore.ACTION_IMAGE_CAPTURE).putExtra(

MediaStore.EXTRA_OUTPUT, Uri.fromFile(file)),REQUEST_CODE_SHOOT);

} else {

Util.showToast(this, R.string.sdcard_missing);

}

}

问题分析

用系统默认的图片保存目录做为照片保存路径无法返回,而将照片保存的文件路径修改为自定义路径则返回正常,是由于一些手机禁止了系统公共的默认路径的访问。所以为了兼容所有的手机,推荐将要保存的文件保存到自定义的文件夹下。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值