2013-05-23 10 views
6

मैं एक ऐसे एप्लिकेशन पर काम कर रहा हूं जिसके लिए एक क्यूआर कोड स्कैन करने और चित्रों पर क्लिक करने की आवश्यकता है, लेकिन कभी-कभी ऐसा होता है कि कैमरा एप्लिकेशन क्रैश हो जाता है और यह कहता है कि एंड्रॉइड कैमरा ने काम करना बंद कर दिया है और डिवाइस को उचित कार्य करने के लिए पुनरारंभ करने की आवश्यकता है।Android में गतिविधि समाप्त होने के बाद कैमरा कैसे रिलीज़ करें?

मैं किसी भी मामले में बाद में दुर्घटनाग्रस्त होने से बचने के लिए अपने गतिविधि से कैमरे को रिलीज़ करने में सक्षम होना चाहता हूं। मदद की ज़रूरत है! स्कैनिंग के लिए

कोड:

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

पर क्लिक तस्वीर के लिए कोड:

अपनी गतिविधि के अपने onDestroy विधि में कोड नीचे रखो
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. 
    } 
} 

उत्तर

17

:

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

    } 
+0

क्या होगा यदि मैं बस कैमरे और स्कैन एप्लिकेशन के इरादे से गुजर रहा हूं? मैं तब भी ऐसा कैसे करूं? –

+0

फिर अपने स्कैन एप्लिकेशन में पहला कोड डालें .. – Riser

+5

कृपया इसे अपनी गतिविधि के कारण विधि में करें, इसे वहां रिलीज़ करने के लिए बेहतर है। –

संबंधित मुद्दे

 संबंधित मुद्दे