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.
Açıklanan işlevleri gösteren örnek bir uygulama çalıştırmak istiyorsanız burada Android için ARCore Coğrafi Hızlı Başlangıç Kılavuzu anlamına gelir. Hızlı Başlangıç'taki örnek uygulama Java'da yazılmıştır. Kod örnekleri Bu dokümanda, C ile yazılan aynı işleve yöneliktir.
Bkz. Daha fazlası için Geospatial API'ye giriş hakkında daha fazla bilgi edinin.
ARCore ile geliştirme yapmaya yeni başladıysanız Başlarken sayfasına bakın yazılım ve donanım gereksinimleri, ön koşulları ve kullandığınız platformlara özgü diğer bilgileri de incelemelisiniz.
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 ARCore API'yi etkinleştirin . Bu hizmet, Coğrafi çapaların barındırılması, depolanması ve çözümlenmesi.
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, Google Play hizmetlerini Play Store'u içerecek şekilde
Hizmetlerin Konum Kitaplığı.
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 oturumunuzdaki GeospatialMode
ayarını değiştirin
ENABLED
yapılandırması:
// 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 mod ENABLED
olarak ayarlandığında, uygulamanın
Görsel Konumlandırma Sistemi'nden (VPS) alınan coğrafi bilgiler.
Kullanıcıdan cihaz verilerinin kullanımına izin vermesini iste
ARCore Geospatial API kullanan uygulamalar, kullanıcıya bu verilerin kullanımını onaylayıp izin vermelidir. 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 false (yanlış) döndürürse oturumu (aşağıda) yapılandırmaya çalışmayın,
Bu durumda, ArStatus
,
AR_ERROR_UNSUPPORTED_CONFIGURATION
Çalışma zamanında kullanıcıdan konum izni iste
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ının konumunu doğru bir ş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ışmaya devam eder 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 istekte bulunabilir
uygulamanızın yalnızca
yaklaşık konum
ekleyebilirsiniz. Bu isteği yerine getirmek için uygulamanızın şunlara sahip olması gerekir:
ACCESS_COARSE_LOCATION
izninin yanı sıra
ACCESS_FINE_LOCATION
,
gibidir. Ş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. Jeo-uzaysal hizmet, uygulamanız yalnızca yaklaşık konum bilgisi veriyorsa kendisinin yapılandırılmasına izin vermez. Uygulamanız, yaklaşık konum bilgisiyle Geospatial API'yi kullanamaz.
Cihazın mevcut konumunda jeo-uzamsal kullanılabilirliği kontrol etme
Geospatial API, coğrafi konumu belirlemek için VPS ve GPS'i birlikte kullandığından, cihaz konumu 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. Tipik koşullarda VPS'nin yaklaşık 5 metre konum doğruluğu ve 5 derece dönüş doğruluğu sağlaması beklenebilir. Belirli bir konumun VPS kapsamında olup olmadığını belirlemek için ArSession_checkVpsAvailabilityAsync()
aracını kullanın.
Geospatial API, VPS kapsama alanı olmayan bölgelerde de 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 duruşunu alın.
- Bir cihazın belirtilen konumundaki VPS'nin kullanılabilirliğini kontrol edin.