Mengambil foto

Catatan: Halaman ini merujuk ke class Camera, yang sudah tidak digunakan lagi. Sebaiknya gunakan CameraX atau, untuk kasus penggunaan tertentu, gunakan Camera2. CameraX dan Camera2 mendukung Android 5.0 (level API 21) dan versi yang lebih baru.

Tutorial ini menjelaskan cara mengambil foto dengan mendelegasikan tugas ke aplikasi kamera lain di perangkat. (Jika Anda ingin membuat fungsionalitas kamera sendiri, lihat Mengontrol kamera.)

Misalkan Anda mengimplementasikan layanan cuaca crowd-sourced yang membuat peta cuaca global dengan memadukan foto-foto langit yang diambil oleh perangkat yang menjalankan aplikasi klien. Mengintegrasikan foto hanyalah sebagian kecil dari tugas aplikasi Anda. Anda ingin mengambil foto tanpa repot, bukan menemukan kembali teknologi kamera. Untungnya, sebagian besar perangkat Android sudah disertai dengan minimal satu aplikasi kamera. Dalam tutorial ini, Anda akan mempelajari bagaimana aplikasi tersebut mengambil foto untuk Anda.

Meminta fitur kamera

Jika mengambil foto merupakan fungsi pokok aplikasi Anda, maka batasi visibilitasnya di Google Play ke perangkat yang memiliki kamera. Untuk menyatakan bahwa aplikasi Anda bergantung pada ketersediaan kamera, tempatkan tag <uses-feature> dalam file manifes Anda:

<manifest ... >
    <uses-feature android:name="android.hardware.camera"
                  android:required="true" />
    ...
</manifest>

Jika aplikasi Anda menggunakan kamera, tetapi tidak mengharuskan ketersediaan kamera agar dapat berfungsi, setel android:required ke false. Dengan demikian, Google Play akan memungkinkan perangkat tanpa kamera untuk mendownload aplikasi Anda. Selanjutnya, Anda bertanggung jawab untuk memeriksa ketersediaan kamera saat aplikasi diluncurkan dengan memanggil hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY). Jika kamera tidak tersedia, Anda harus menonaktifkan fitur kamera.