أهداف الكاميرا

لتنفيذ الإجراءات الأساسية للكاميرا، مثل التقاط صورة أو فيديو باستخدام تطبيق الكاميرا التلقائي للجهاز، لن تحتاج إلى الدمج مع مكتبة الكاميرا. بدلاً من ذلك، استخدِم 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 مع أي شيء أكثر تعقيدًا من التقاط الصور أو الفيديو الأساسي.