在Android中活动结束后如何释放摄像头?
我正在开发一个需要扫描二维码并点击图片的应用程序,但有时相机应用程序会崩溃,并显示Android相机已停止工作,需要重新启动设备才能正常工作 我希望能够从我的活动中释放相机,以避免它在任何情况下稍后崩溃。 需要帮助 扫描代码:在Android中活动结束后如何释放摄像头?,android,android-camera,Android,Android Camera,我正在开发一个需要扫描二维码并点击图片的应用程序,但有时相机应用程序会崩溃,并显示Android相机已停止工作,需要重新启动设备才能正常工作 我希望能够从我的活动中释放相机,以避免它在任何情况下稍后崩溃。 需要帮助 扫描代码: @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); try{ Intent intent = new I
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
try{
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}catch(Exception e){
// ERROR
}
} //End of onCreate
public void onActivityResult(int requestCode, int resultCode, Intent intent){
if (requestCode == 0){
if (resultCode == RESULT_OK){
String contents = intent.getStringExtra("SCAN_RESULT");
showPass(contents);
}
else if (resultCode == RESULT_CANCELED){
showFail();
}
} // End of If
} //End of onActivityResult
单击图片的代码:
public void takephoto(View v){
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == CAMERA_REQUEST){
Bitmap photo = (Bitmap) data.getExtras().get("data");
//some action.
}
}
在活动的
onDestroy
方法中输入以下代码:
protected void onDestroy(){
if(camera!=null){
camera.stopPreview();
camera.setPreviewCallback(null);
camera.release();
camera = null;
}
}
如果您使用的是单独的预览类,请在其中添加以下代码:
public void surfaceDestroyed(SurfaceHolder holder) {
if(camera!=null){
camera.stopPreview();
camera.setPreviewCallback(null);
camera.release();
camera = null;
}
}
如果我只是将意图传递给相机和扫描应用程序,该怎么办?那么我该怎么做呢?请在活动的onPause方法中执行,最好在那里释放它。摄影机是摄影机的对象。请查看我的代码,并告诉我当我直接传递意图时,在哪里可以为摄影机创建对象?有些代码将非常有用。受保护的void onDestroy