कैमरा इंटेंट

डिवाइस के डिफ़ॉल्ट कैमरा ऐप्लिकेशन का इस्तेमाल करके, फ़ोटो या वीडियो कैप्चर करने जैसी बुनियादी कैमरा कार्रवाइयां करने के लिए, आपको कैमरा लाइब्रेरी के साथ इंटिग्रेट करने की ज़रूरत नहीं है. इसके बजाय, Intent का इस्तेमाल करें.

कैमरा ऐप्लिकेशन से फ़ोटो लेना

Android, Intent को ट्रिगर करके, अन्य ऐप्लिकेशन को कार्रवाइयां करने की अनुमति देता है. इस प्रोसेस में तीन चीज़ें शामिल हैं: Intent, बाहरी Activity को शुरू करने के लिए कॉल, और आपकी गतिविधि पर फ़ोकस वापस आने पर इमेज डेटा को मैनेज करने के लिए कुछ कोड.

यहां एक फ़ंक्शन दिया गया है, जो फ़ोटो खींचने के लिए Intent को ट्रिगर करता है.

Kotlin

val REQUEST_IMAGE_CAPTURE = 1
 
private fun dispatchTakePictureIntent() {
    val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
    try {
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE)
    } catch (e: ActivityNotFoundException) {
        // display error state to the user
    }
}

Java

static final int REQUEST_IMAGE_CAPTURE = 1;
 
private void dispatchTakePictureIntent() {
    Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    try {
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
    } catch (ActivityNotFoundException e) {
        // display error state to the user
    }
}

कैमरा ऐप्लिकेशन से वीडियो रिकॉर्ड करना

वीडियो कैप्चर करने के लिए, Intent को भी इस्तेमाल किया जा सकता है.

Kotlin

val REQUEST_VIDEO_CAPTURE = 1
 
private fun dispatchTakeVideoIntent() {
    Intent(MediaStore.ACTION_VIDEO_CAPTURE).also { takeVideoIntent ->
        takeVideoIntent.resolveActivity(packageManager)?.also {
            startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE)
        } ?: run {
          //display error state to the user
        }
    }
}

Java

static final int REQUEST_VIDEO_CAPTURE = 1;
 
private void dispatchTakeVideoIntent() {
    Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
    if (takeVideoIntent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE);
    }
    else {
      //display error state to the user
    }
}

startActivityForResult() तरीके को एक शर्त से सुरक्षित किया जाता है, जो resolveActivity() को कॉल करता है. यह शर्त, Intent को हैंडल करने वाला पहला गतिविधि कॉम्पोनेंट दिखाती है. यह जांच करके पक्का करें कि आपने ऐसा Intent इस्तेमाल किया है जिससे आपका ऐप्लिकेशन क्रैश न हो.

अतिरिक्त संसाधन

कैमरे से जुड़ी बुनियादी कार्रवाइयों के लिए, Intent का इस्तेमाल करें. अगर ऐसा नहीं है, तो हमारा सुझाव है कि बुनियादी इमेज या वीडियो कैप्चर करने के अलावा, किसी भी ज़्यादा जटिल काम के लिए Camera2 और CameraX लाइब्रेरी का इस्तेमाल करें.