Konfigurasikan setelan aplikasi Anda agar dapat menggunakan Geospatial API.
Prasyarat
Pastikan Anda memahami konsep AR dasar dan cara mengonfigurasi sesi ARCore sebelum melanjutkan.
Aplikasi dan codelab contoh
Video ini membahas langkah-langkah untuk mem-build aplikasi yang menampilkan data Geospasial dan menempatkan konten di lokasi dunia nyata menggunakan Geospatial API.
Anda juga dapat mengikuti dokumentasi Codelab geospasial untuk langkah yang sama. Untuk menjalankan aplikasi contoh yang dibuat dalam video, lihat Panduan Memulai Geospasial ARCore.
Lihat Pengantar Geospatial API untuk mengetahui informasi selengkapnya tentang Geospatial API.
Jika Anda baru mengenal pengembangan dengan ARCore, lihat bagian Memulai untuk mengetahui informasi tentang persyaratan software dan hardware, prasyarat, dan informasi lain khusus untuk platform yang Anda gunakan.
Pastikan lingkungan pengembangan Anda memenuhi persyaratan ARCore SDK, seperti yang dijelaskan dalam Mulai Cepat.
Mengaktifkan ARCore API
Sebelum menggunakan Sistem Pemosisi Visual (VPS) di aplikasi, Anda harus mengaktifkan ARCore API terlebih dahulu di project Google Cloud baru atau yang sudah ada. Layanan ini bertanggung jawab untuk menghosting, menyimpan, dan me-resolve anchor Geospasial.
Otorisasi tanpa kunci lebih diutamakan, tetapi otorisasi Kunci API juga didukung.
Menambahkan library yang diperlukan ke aplikasi Anda
Setelah mengizinkan aplikasi untuk memanggil ARCore API, Anda harus menambahkan library untuk mengaktifkan fitur Geospasial di aplikasi.
Di file build.gradle
aplikasi Anda, siapkan layanan Google Play untuk menyertakan library Lokasi Layanan Play.
dependencies {
// Apps must declare play-services-location version >= 16.
// In the following line, substitute `16 (or later)` with the latest version.
implementation 'com.google.android.gms:play-services-location:16 (or later)'
}
Mengaktifkan kemampuan Geospasial dalam konfigurasi sesi
Sebelum membuat sesi, ubah GeospatialMode
dalam konfigurasi sesi Anda menjadi ENABLED
:
Java
Config config = session.getConfig(); config.setGeospatialMode(Config.GeospatialMode.ENABLED); session.configure(config);
Kotlin
// Enable the Geospatial API. session.configure(session.config.apply { geospatialMode = Config.GeospatialMode.ENABLED })
Saat mode Geospasial ditetapkan ke ENABLED
, aplikasi diizinkan untuk mendapatkan
informasi geografis dari Sistem Pemosisi Visual (VPS).
Meminta pengguna untuk mengizinkan penggunaan data perangkat
Aplikasi yang menggunakan ARCore Geospatial API harus menampilkan perintah kepada pengguna untuk mengonfirmasi dan mengizinkan penggunaan data dari perangkat mereka. Lihat Persyaratan privasi pengguna untuk mengetahui informasi selengkapnya.
Memeriksa kompatibilitas perangkat
Tidak semua perangkat yang mendukung ARCore juga mendukung Geospatial API, seperti yang dijelaskan dalam panduan memulai.
Untuk memeriksa kompatibilitas perangkat pengguna, panggil
Session.checkGeospatialModeSupported()
.
Jika nilai ini menampilkan nilai salah, jangan coba konfigurasikan sesi (di bawah), karena tindakan tersebut akan menampilkan UnsupportedConfigurationException
.
Meminta izin akses lokasi kepada pengguna saat runtime
Aplikasi Anda harus meminta izin akses lokasi saat runtime.
Untuk menggunakan ARCore Geospatial API, aplikasi Anda harus mendaftarkan izin tambahan berikut:
ACCESS_FINE_LOCATION
untuk menentukan lokasi pengguna secara akurat.ACCESS_COARSE_LOCATION
untuk penentuan lokasi pengguna yang tidak akurat dan untuk mematuhi persyaratan privasi pengguna. Namun, Geospatial API tidak dapat dikonfigurasi untuk berfungsi dengan lokasi sementara, dan permintaan API akan gagal jika pengguna telah menetapkan izin ini. Lihat di bawah untuk informasi lebih lanjut.ACCESS_INTERNET
untuk menghubungi layanan ARCore Geospatial API.
<manifest ... >
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
Pada perangkat yang menjalankan Android versi 12 atau yang lebih baru,
pengguna dapat meminta
agar aplikasi Anda hanya memiliki akses ke
informasi
perkiraan lokasi. Untuk memenuhi permintaan ini, aplikasi Anda harus memiliki izin
ACCESS_COARSE_LOCATION
yang dikonfigurasi, beserta
ACCESS_FINE_LOCATION
,
seperti yang ditunjukkan di atas. Anda harus
mengonfigurasi kedua izin akses lokasi.
Namun, saat pengguna menentukan lokasi sementara, tindakan tersebut akan mencegah Geospatial API mendapatkan lokasi presisi yang diperlukan. Layanan Geospasial tidak akan mengizinkan dirinya dikonfigurasi jika aplikasi Anda hanya memberikan lokasi sementara. Aplikasi Anda tidak dapat menggunakan Geospatial API dengan lokasi sementara.
Memeriksa ketersediaan Geospasial di lokasi perangkat saat ini
Karena Geospatial API menggunakan kombinasi VPS dan GPS untuk menentukan pose Geospasial, API ini dapat digunakan selama perangkat dapat menentukan lokasinya. Di area dengan akurasi GPS rendah, seperti ruang dalam ruangan dan lingkungan perkotaan yang padat, API akan mengandalkan cakupan VPS untuk menghasilkan pose dengan akurasi tinggi. Dalam kondisi normal, VPS dapat diharapkan untuk memberikan akurasi posisi sekitar 5 meter, dan akurasi rotasi 5 derajat. Gunakan Session.checkVpsAvailabilityAsync()
untuk menentukan apakah lokasi tertentu memiliki cakupan VPS.
Geospatial API juga dapat digunakan di area yang tidak memiliki cakupan VPS. Di lingkungan luar ruangan dengan sedikit atau tanpa penghalang di atas, GPS mungkin cukup untuk menghasilkan pose dengan akurasi tinggi.
Langkah berikutnya
- Dapatkan pose Geospasial kamera perangkat untuk menentukan lokasi persis perangkat pengguna di dunia nyata.
- Memeriksa ketersediaan VPS di lokasi tertentu pada perangkat.