Uygulamanızın ayarlarını, Coğrafi API'yi kullanabileceği şekilde yapılandırın.
Ön koşullar
Devam etmeden önce temel AR kavramlarını ve ARCore oturumunu nasıl yapılandıracağınızı anladığınızdan emin olun.
Örnek uygulama ve codelab
Bu videoda, Geospatial API'yi kullanarak coğrafi verileri görüntüleyen ve içeriği gerçek konumlara yerleştiren bir uygulama oluşturma adımları açıklanmaktadır.
Aynı adımlar için coğrafi kod laboratuvarının dokümanlarını da inceleyebilirsiniz. Videoda oluşturulan örnek uygulamayı çalıştırmak için ARCore Coğrafi Hızlı Başlangıç başlıklı makaleyi inceleyin.
Geospatial API hakkında daha fazla bilgi için Geospatial API'ye Giriş başlıklı makaleyi inceleyin.
ARCore ile geliştirmeye yeni başladıysanız yazılım ve donanım gereksinimleri, ön koşullar ve kullandığınız platformlara özgü diğer bilgiler için Başlangıç bölümüne bakın.
Geliştirme ortamınızın, Hızlı Başlangıç bölümünde açıklandığı gibi ARCore SDK koşullarını karşıladığından emin olun.
ARCore API'yi etkinleştirme
Uygulamanızda Görsel Konumlandırma Sistemi'ni (VPS) kullanmadan önce yeni veya mevcut bir Google Cloud projesinde ARCore API'yi etkinleştirmeniz gerekir. Bu hizmet, coğrafi yer işaretlerini barındırmaktan, depolamaktan ve çözmekten sorumludur.
Anahtarsız yetkilendirme tercih edilir ancak API anahtarı yetkilendirmesi de desteklenir.
Uygulamanıza gerekli kitaplıkları ekleme
Uygulamanızı ARCore API'yi çağıracak şekilde yetkilendirdikten sonra, uygulamanızda Coğrafi Özellikler'i etkinleştirmek için kitaplıklar eklemeniz gerekir.
Uygulamanızın build.gradle
dosyasında, Play Hizmetleri konum kitaplığını içerecek şekilde Google Play Hizmetleri'ni ayarlayın.
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)'
}
Oturum yapılandırmasında coğrafi özellikleri etkinleştirme
Oturumu oluşturmadan önce oturum yapılandırmanızdaki GeospatialMode
değerini ENABLED
olarak değiştirin:
Config config = session.getConfig(); config.setGeospatialMode(Config.GeospatialMode.ENABLED); session.configure(config);
// Enable the Geospatial API. session.configure(session.config.apply { geospatialMode = Config.GeospatialMode.ENABLED })
Coğrafi konum modu ENABLED
olarak ayarlandığında uygulamanın Görsel Konumlandırma Sistemi'nden (VPS) coğrafi bilgi almasına izin verilir.
Kullanıcıdan cihaz verilerinin kullanılmasına izin vermesini isteme
ARCore Geospatial API'yi kullanan uygulamalar, kullanıcıya cihazındaki verilerin kullanımını kabul etmesini ve buna izin vermesini isteyen bir istem göstermelidir. Daha fazla bilgi için Kullanıcı gizliliği şartları başlıklı makaleyi inceleyin.
Cihaz uyumluluğunu kontrol etme
Hızlı başlangıç bölümünde açıklandığı gibi, ARCore'u destekleyen tüm cihazlar Geospatial API'yi de desteklemez.
Kullanıcının cihazının uyumluluğunu kontrol etmek için Session.checkGeospatialModeSupported()
numaralı telefonu arayın.
Bu işlev yanlış döndürürse oturumu yapılandırmayı denemeyin (aşağıda). Aksi takdirde UnsupportedConfigurationException
hatası alırsınız.
Çalışma zamanında kullanıcıdan konum izinleri isteme
Uygulamanız çalışma zamanında konum izinleri istemelidir.
ARCore Geospatial API'yi kullanmak için uygulamanızın aşağıdaki ek izinleri kaydettirmesi gerekir:
ACCESS_FINE_LOCATION
kullanıcı konumunu doğru şekilde belirlemek için.ACCESS_COARSE_LOCATION
kullanıcı konumunun doğru şekilde belirlenmemesi ve kullanıcı gizliliği koşullarına uyulması için. Ancak Geospatial API, kaba konumla çalışacak şekilde yapılandırılamaz ve kullanıcı bu izni ayarladığında API istekleri başarısız olur. Daha fazla bilgi için aşağıya göz atın.ACCESS_INTERNET
ARCore Geospatial API hizmetiyle iletişime geçin.
<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>
Android 12 veya sonraki sürümleri çalıştıran cihazlarda, kullanıcılar uygulamanızın yalnızca yaklaşık konum bilgilerine erişmesini isteyebilir. Bu isteği karşılamak için uygulamanızda, yukarıda gösterildiği gibi ACCESS_FINE_LOCATION
ile birlikte ACCESS_COARSE_LOCATION
izninin yapılandırılmış olması gerekir. Her iki konum iznini de yapılandırmanız gerekir.
Ancak kullanıcılar kaba konum belirttiğinde bu durum, Coğrafi API'nin ihtiyaç duyduğu tam konumu elde etmesini engeller. Uygulamanız coğrafi hizmete yalnızca yaklaşık konum bilgisi verirse coğrafi hizmet yapılandırılmasına izin vermez. Uygulamanız, kaba konumla Geospatial API'yi kullanamıyor.
Cihazın mevcut konumunda Coğrafi Veri Kullanımı'nın kullanılabilirliğini kontrol etme
Geospatial API, coğrafi konumla ilgili bir duruş belirlemek için VPS ve GPS'yi birlikte kullandığından, cihaz konumunu belirleyebildiği sürece API kullanılabilir. Kapalı alanlar ve yoğun kentsel ortamlar gibi GPS doğruluğunun düşük olduğu yerlerde API, yüksek doğrulukta pozlar oluşturmak için VPS kapsamını kullanır. Normal koşullarda VPS'nin yaklaşık 5 metrelik konumsal doğruluk ve 5 derecelik dönme doğruluğu sağlaması beklenebilir. Belirli bir konumun VPS kapsamına girip girmediğini belirlemek için Session.checkVpsAvailabilityAsync()
değerini kullanın.
Coğrafi API, VPS kapsamı olmayan alanlarda da kullanılabilir. Başınızın üzerinde çok az engel bulunan veya hiç engel bulunmayan dış mekan ortamlarında, yüksek doğrulukta bir poz oluşturmak için GPS yeterli olabilir.
Sırada ne var?
- Kullanıcının cihazının gerçek dünyadaki tam konumunu belirlemek için cihaz kamerasının Coğrafi konumlandırma pozunu alın.
- Bir cihazın belirli konumunda VPS'nin kullanılabilir olup olmadığını kontrol edin.