Aby wykonywać podstawowe czynności związane z aparatem, takie jak robienie zdjęć lub nagrywanie filmów za pomocą domyślnej aplikacji aparatu na urządzeniu, nie musisz integrować aplikacji z biblioteką aparatu. Zamiast tego użyj Intent.
Robienie zdjęć za pomocą aplikacji aparatu
Android przekazuje działania do innych aplikacji, wywołując Intent. Ten proces składa się z 3 elementów: samego elementu Intent, wywołania, które uruchamia zewnętrzny element Activity, oraz kodu do obsługi danych obrazu, gdy fokus powróci do aktywności.
Oto funkcja, która wywołuje Intent, aby zrobić zdjęcie.
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. } }
Nagrywanie filmu za pomocą aplikacji aparatu
Możesz też wywołać Intent, aby nagrać film.
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. } } }
Metoda startActivityForResult() jest chroniona przez warunek, który wywołuje resolveActivity(), co zwraca pierwszy komponent aktywności, który może obsłużyć Intent. Wykonaj tę kontrolę, aby upewnić się, że wywołujesz Intent, który nie spowoduje awarii aplikacji.
Dodatkowe materiały
Do podstawowych działań związanych z aparatem używaj Intent. W pozostałych przypadkach zalecamy używanie bibliotek Camera2 i CameraX do wszystkich zadań bardziej złożonych niż podstawowe robienie zdjęć i nagrywanie filmów.