Cihazın varsayılan kamera uygulamasını kullanarak fotoğraf veya video çekme gibi temel kamera işlemlerini gerçekleştirmek için Kamera kitaplığı ile entegrasyon yapmanız gerekmez. Bunun yerine Intent kullanın.
Kamera uygulamasıyla fotoğraf çekme
Android, bir Intent çağırarak işlemleri diğer uygulamalara devreder. Bu işlem üç parçadan oluşur: Intent, harici Activity başlatma çağrısı ve odak etkinliğinize döndüğünde resim verilerini işleyecek kod.
Fotoğraf çekmek için Intent çağıran bir işlev aşağıda verilmiştir.
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. } }
Kamera uygulamasıyla video kaydetme
Video çekmek için Intent da çağırabilirsiniz.
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() yöntemi, Intent öğesini işleyebilen ilk etkinlik bileşenini döndüren resolveActivity() yöntemini çağıran bir koşulla korunur. Uygulamanızın kilitlenmesine neden olmayacak bir Intent çağırdığınızdan emin olmak için bu kontrolü yapın.
Ek Kaynaklar
Temel kamera işlemleri için Intent kullanın. Aksi takdirde, temel resim veya video çekiminden daha karmaşık işlemler için Camera2 ve CameraX kitaplıklarını kullanmanız önerilir.