Cihazın varsayılan kamera uygulamasını kullanarak fotoğraf veya video çekmek 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şlemler için diğer uygulamalara yetki verir. Bu işlem üç parçadan oluşur: Intent
'nin kendisi, harici Activity
'u başlatma çağrısı ve odak etkinliğinize geri döndüğünde resim verilerini işleyen bazı kodlar.
Fotoğraf çekmek için Intent
çağıran bir işlevi aşağıda görebilirsiniz.
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 } }
Kamera uygulamasıyla video kaydı yapma
Video çekmek için Intent
komutunu da kullanabilirsiniz.
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()
yöntemi, resolveActivity()
öğesini çağıran ve Intent
öğesini işleyebilen ilk etkinlik bileşenini döndüren bir koşulla korunur. Uygulamanızı kilitlenmeyecek bir Intent
çağırdığınızdan emin olmak için bu kontrolü gerçekleştirin.
Ek Kaynaklar
Temel kamera işlemleri için bir Intent
kullanın. Aksi takdirde, temel görüntü veya video yakalamadan daha karmaşık işlemler için Camera2 ve CameraX kitaplıklarını kullanmanız önerilir.