Comment libérer de la caméra après l'activité se termine dans Android?

Je suis en train de travailler sur une application qui nécessite le scan d'un QR code et cliquez sur des photos, mais parfois, il arrive que l'application de l'appareil photo se bloque et il est dit que l'Appareil photo Android a cessé de fonctionner et que l'appareil doit être redémarré pour que le bon fonctionnement.

Je veux être en mesure de libérer la caméra de mon activité elle-même pour éviter de s'écraser plus tard, en tout cas.
Besoin d'aide!

CODE POUR LA NUMÉRISATION:

 @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
       }
    }

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();
      } 
      }
   }

CODE EN CLIQUANT SUR L'IMAGE :

   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.
    }
}