Android uygulamanız için Geospatial API'yi (Kotlin/Java) etkinleştirin

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?