डिवाइस के डिफ़ॉल्ट कैमरा ऐप्लिकेशन का इस्तेमाल करके, फ़ोटो या वीडियो कैप्चर करने जैसी बुनियादी कार्रवाइयां करने के लिए, आपको कैमरा लाइब्रेरी को इंटिग्रेट करने की ज़रूरत नहीं है. इसके बजाय, Intent का इस्तेमाल करें.
कैमरा ऐप्लिकेशन से फ़ोटो लेना
Android, Intent को शुरू करके, अन्य ऐप्लिकेशन को कार्रवाइयां असाइन करता है. इस प्रोसेस में तीन चीज़ें शामिल होती हैं: खुद Intent, बाहरी Activity को शुरू करने के लिए कॉल, और इमेज डेटा को मैनेज करने के लिए कुछ कोड. ऐसा तब होता है, जब फ़ोकस आपकी गतिविधि पर वापस आता है.
यहां एक फ़ंक्शन दिया गया है, जो फ़ोटो कैप्चर करने के लिए Intent को शुरू करता है.
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. } }
कैमरा ऐप्लिकेशन से वीडियो रिकॉर्ड करना
वीडियो कैप्चर करने के लिए, Intent को भी चालू किया जा सकता है.
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. } } }
startActivityForResult() तरीके को एक शर्त से सुरक्षित किया गया है. यह शर्त resolveActivity() को कॉल करती है. इससे, Intent को हैंडल करने वाला पहला गतिविधि कॉम्पोनेंट मिलता है. यह जांच करके पक्का करें कि आपने ऐसा Intent शुरू किया है जिससे आपका ऐप्लिकेशन क्रैश न हो.
अतिरिक्त संसाधन
कैमरे की बुनियादी कार्रवाइयों के लिए, Intent का इस्तेमाल करें. अगर आपको इमेज या वीडियो कैप्चर करने के अलावा, कोई और जटिल काम करना है, तो हमारा सुझाव है कि आप Camera2 और CameraX लाइब्रेरी का इस्तेमाल करें.