Uygulamanızın ayarlarını, Geospatial API'yi kullanabilecek ş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, Coğrafi verileri gösteren ve Geospatial API'yi kullanarak içeriği gerçek dünyaya yerleştiren bir uygulama oluşturma adımları açıklanmaktadır.
Aynı adımlar için Coğrafi mekansal codelab belgelerini de uygulayabilirsiniz. Videoda oluşturulan örnek uygulamayı çalıştırmak için ARCore Geospatial Hızlı Başlangıç Kılavuzu'na bakın.
Geospatial API hakkında daha fazla bilgi için Geospatial API'ye giriş bölümüne bakın.
ARCore ile geliştirme konusunda yeniyseniz yazılım ve donanım gereksinimleri, ön koşullar ve kullandığınız platformlara özgü diğer bilgiler hakkında bilgi için Başlarken bölümüne bakın.
Geliştirme ortamınızın Hızlı Başlangıç'da açıklandığı gibi ARCore SDK gereksinimlerini karşıladığından emin olun.
ARCore API'yi etkinleştir
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 çapaların barındırılması, depolanması ve çözümlenmesinden sorumludur.
Anahtarsız yetkilendirme tercih edilir ancak API anahtarı yetkilendirmesi de desteklenir.
Gerekli kitaplıkları uygulamanıza ekleme
Uygulamanızı ARCore API'yi çağırmak üzere yetkilendirdikten sonra, uygulamanızda Coğrafi özellikleri 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 hizmetlerini 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ştir
Oturumu oluşturmadan önce, oturum yapılandırmanızdaki GeospatialMode
değerini ENABLED
olarak değiştirin:
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 })
Coğrafi mod ENABLED
olarak ayarlandığında, uygulamanın Görsel Konumlandırma Sistemi'nden (VPS) coğrafi bilgi elde etmesine izin verilir.
Kullanıcıdan cihaz verilerinin kullanımına izin vermesini iste
ARCore Geospatial API'yi kullanan uygulamalar, kullanıcıya, cihazındaki verilerin kullanımına onay ve izin verme istemi sunmalıdır. Daha fazla bilgi için Kullanıcı gizlilik şartları bölümüne bakın.
Cihaz uyumluluğunu kontrol etme
quickstart 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, false değerini döndürürse oturumu yapılandırmaya (aşağıda) çalışmayın. Aksi takdirde UnsupportedConfigurationException
döndürülür.
Çalışma zamanında kullanıcıdan konum izni iste
Uygulamanız çalışma zamanında konum izinleri istemelidir.
ARCore Geospatial API'yi kullanmak için uygulamanızın aşağıdaki ek izinleri kaydetmesi gerekir:
Kullanıcının konumunu doğru belirlemek için
ACCESS_FINE_LOCATION
.ACCESS_COARSE_LOCATION
. Ancak Geospatial API, yaklaşık 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
adresinden ARCore Geospatial API hizmetiyle iletişim kurun.
<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 bir sürümü çalıştıran cihazlarda
kullanıcılar, uygulamanızın yalnızca yaklaşık konum bilgisine
erişmesini isteyebilir. Bu isteğin gerçekleştirilmesi için uygulamanızda ACCESS_FINE_LOCATION
ile birlikte ACCESS_COARSE_LOCATION
izni yukarıda gösterildiği gibi yapılandırılmış olmalıdır. Her iki konum iznini de yapılandırmanız gerekir.
Bununla birlikte, kullanıcılar yaklaşık konum belirttiklerinde, bunu yapmak Geospatial API'nin gerektirdiği tam konumu elde etmesini engeller. Uygulamanız ona yalnızca yaklaşık konum veriyorsa, Coğrafi hizmet, kendisinin yapılandırılmasına izin vermez. Uygulamanız, Geospatial API'yi yaklaşık konumla kullanamaz.
Cihazın mevcut konumundaki Coğrafi kullanılabilirliği kontrol edin
Geospatial API, Coğrafi konumu belirlemek için VPS ve GPS kombinasyonunu kullandığından, cihaz konumunu belirleyebildiği sürece API kullanılabilir. API, iç mekan alanları ve yoğun kentsel ortamlar gibi GPS doğruluğunun düşük olduğu alanlarda yüksek doğruluklu pozlar oluşturmak için VPS'nin kapsamını kullanır. VPS'nin normal koşullarda yaklaşık 5 metre konum doğruluğu ve 5 derece dönme doğruluğu sağlaması beklenebilir. Belirli bir konumun VPS kapsamında olup olmadığını belirlemek için Session.checkVpsAvailabilityAsync()
özelliğini kullanın.
Geospatial API, VPS kapsamında olmayan bölgelerde de kullanılabilir. Yukarıdan engellerin çok az olduğu veya hiç olmadığı açık ortamlarda GPS, yüksek doğrulukta poz oluşturmak için yeterli olabilir.
Sırada ne var?
- Kullanıcı cihazının gerçek dünyadaki kesin konumunu belirlemek için cihaz kamerasının coğrafi pozisyonunu alın.
- Cihazın bulunduğu yerdeki VPS kullanılabilirliğini kontrol edin.