我正在尝试使用 android.provider.MediaStore.ACTION_IMAGE_CAPTURE 捕获图像并且事情似乎工作正常,唯一的问题是进程com.android.camera不是返回后被破坏,它干扰了应用程序其余部分的运行。
所以我想知道它为什么不被摧毁以及一旦捕获完成后我怎么能摧毁它?谢谢任何帮助将不胜感激。
这是我的代码:
private OnClickListener buttonCaptureListener = new OnClickListener(){
public void onClick(View v){
String path = Environment.getExternalStorageDirectory() + "/"+Long.toHexString(System.currentTimeMillis())+".jpg";
File file = new File(path);
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult(intent,SelectImagesActivity.REQUEST_CAPTURE);
}
};
结果处理:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == SelectImagesActivity.REQUEST_CAPTURE){
if(resultCode == RESULT_OK){
// display image and etc.
}
}
}
答案 0 :(得分:0)
我也认为这个过程不会立即被破坏是正常的行为。
我建议使用以下代码来明确含义
将额外数据 - ('返回数据',真实)附加到意图中是不同的。
private OnClickListener buttonCaptureListener = new OnClickListener(){
public void onClick(View v){
String path = Environment.getExternalStorageDirectory();
String file_name = Long.toHexString(System.currentTimeMillis())+".jpg";
File file = new File(path , file_name);
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
intent.putExtra("return-data", true);
startActivityForResult(intent,SelectImagesActivity.REQUEST_CAPTURE);
}