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

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:

JavaKotlin
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?