Uygulamanızın ayarlarını Geospatial API'yi kullanabilecek şekilde yapılandırın.
Ön koşullar
Temel artırılmış gerçeklik kavramlarını anladığınızdan emin olun ve devam etmeden önce ARCore oturumunun nasıl yapılandırılacağı hakkında daha fazla bilgi edinin.
Burada açıklanan işlevleri gösteren bir örnek uygulama çalıştırmak istiyorsanız Java için Android'de ARCore Geospatial Hızlı Başlangıç Kılavuzu'na bakın. Hızlı Başlangıç'taki örnek uygulama Java ile yazılmıştır. Bu belgedeki kod örnekleri, C dilinde yazılmış aynı işlev içindir.
Bkz. Daha fazlası için Geospatial API'ye giriş hakkında daha fazla bilgi edinin.
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.
Aşağıdaki gibi, geliştirme ortamınızın ARCore SDK'sı gereksinimlerini karşıladığından emin olun: Hızlı başlangıç kılavuzunda bulabilirsiniz.
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.
Gerekli kitaplıkları uygulamanıza ekleyin
Uygulamanıza ARCore API'yi çağırma yetkisi verdikten sonra Uygulamanızda Coğrafi özellikleri etkinleştirmelisiniz.
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:
// Create a session config. ArConfig* ar_config = NULL; ArConfig_create(ar_session, &ar_config); // Enable the Geospatial API. ArConfig_setGeospatialMode(ar_session, ar_config, AR_GEOSPATIAL_MODE_ENABLED); CHECK(ArSession_configure(ar_session, ar_config) == AR_SUCCESS); // Release config resources. ArConfig_destroy(ar_config);
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. Görüntüleyin Daha fazla bilgi için kullanıcı gizlilik şartları ekleyebilirsiniz.
Cihaz uyumluluğunu kontrol etme
ARCore'u destekleyen tüm cihazlar Geospatial API'yi de desteklemez; hızlı başlangıç kılavuzunda anlamına gelir.
Kullanıcının cihazının uyumlu olup olmadığını kontrol etmek için şu numarayı arayın:
ArSession_isGeospatialModeSupported()
.
Bu değer yanlış döndürülürse oturumu yapılandırmayı (aşağıda) denemeyin. Aksi takdirde ArStatus
, AR_ERROR_UNSUPPORTED_CONFIGURATION
bildirecektir.
Çalışma zamanında kullanıcıdan konum izinleri isteme
Uygulamanızın çalışma zamanında konum izinleri istemesi gerekir.
ARCore Geospatial API'yi kullanmak için uygulamanızın aşağıdakileri kaydetmesi gerekir ek izinler:
ACCESS_FINE_LOCATION
kullanıcı konumunu doğru şekilde belirlemek için.ACCESS_COARSE_LOCATION
tespiti için kullanıcının bulunduğu konumu belirlemek ve kullanıcı gizlilik gereksinimleri. Ancak Geospatial API yapılandırılamaz. yaklaşık konumla çalışır ve kullanıcı işlemi gerçekleştirdiğinde API istekleri başarısız olur. bu izni ayarlayabilirsiniz. Daha fazla bilgi için aşağıya göz atın.ACCESS_INTERNET
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 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 yerine getirmek için uygulamanızın şunlara sahip olması gerekir:
ACCESS_COARSE_LOCATION
izninin yanı sıra
ACCESS_FINE_LOCATION
,
yukarıda gösterildiği gibi. Şunu yapmalısınız:
her iki konum iznini de yapılandırın.
Ancak, kullanıcılar yaklaşık bir konum belirttiğinde, bu durum Coğrafi API'nin gerektirdiği tam konumu almasını önler. 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 konumlu bir pozu belirlemek için VPS ve GPS'ten alınan verileri birlikte kullandığından, cihaz konumunu belirleyebildiği sürece API kullanılabilir. İç mekanlar ve yoğun kentsel ortamlar gibi GPS doğruluğu düşük olan alanlarda API, yüksek doğruluklu pozlar oluşturmak için VPS kapsama alanı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 ArSession_checkVpsAvailabilityAsync()
değerini kullanın.
Coğrafi API, VPS kapsamı olmayan alanlarda da kullanılabilir. Baş üstü engellerin az olduğu veya hiç olmadığı açık hava ortamlarında GPS, yüksek doğrulukta bir poz oluşturmak için 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 belirtilen konumundaki VPS'nin kullanılabilirliğini kontrol edin.