700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > android相机故障代码解决方法 Android调用相机拍照后无法返回问题处理

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

时间:2022-10-20 06:58:29

相关推荐

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

转载请注明出处,谢谢

背景

之前开发的一个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);

}

}

问题分析

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



本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。