【发布时间】:2016-01-04 10:05:02
【问题描述】:
我有一个按钮,单击它时,它将启动相机并保存我拍摄的图像,但有些东西不起作用。 此代码来自here:
private void takeAPic() {
//camera stuff
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
//folder stuff
File imagesFolder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyImages");
imagesFolder.mkdirs();
File image = new File(imagesFolder, "QR_" + timeStamp + ".png");
Uri uriSavedImage = Uri.fromFile(image);
log("uriSavedImage: "+uriSavedImage.toString());
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
getActivity().startActivityForResult(imageIntent, Constant.REQUEST_CODE.TAKE_A_PIC);
}
日志:uriSavedImage:file:///storage/emulated/0/Pictures/MyImages/QR_20160104_165527.png
我拍摄的图片未保存在手机上,此应用返回空数据:
{who=null, request=62, result=-1, data=Intent { }}
在清单中:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera"></uses-feature>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
onActivity:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case Constant.REQUEST_CODE.TAKE_A_PIC:
if (resultCode == Activity.RESULT_OK) {
setSystemImage(data);
}
break;
default:
break;
}
private void setSystemImage(Intent data) {
Uri targetUri = data.getData();
log("log: "+targetUri.toString());
try {
bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(targetUri));
image.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
【问题讨论】:
-
发布您的 onActivityResult 代码
-
我确定 62, switch (requestCode) {case Constant.REQUEST_CODE.TAKE_A_PIC: Uri targetUri = data.getData(); log("log:"+targetUri.toString());休息;默认值:break;}
-
编辑您的问题并添加代码
-
好的,请再检查一下。
标签: android camera image-capture