Jetpack XR için ARCore
Son Güncelleme | Kararlı sürüm | Sürüm Adayı | Beta Sürümü | Alfa sürümü |
---|---|---|---|---|
30 Temmuz 2025 | - | - | - | 1.0.0-alpha05 |
Bağımlılıkları bildirme
Jetpack XR için ARCore'a bağımlılık eklemek istiyorsanız Google Maven deposunu projenize eklemeniz gerekir. Daha fazla bilgi için Google'ın Maven deposunu okuyun.
Uygulamanız veya modülünüz için build.gradle
dosyasına ihtiyacınız olan yapılarla ilgili bağımlılıkları ekleyin:
Eski
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha05" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha05") }
Bağımlılıklar hakkında daha fazla bilgi için Derleme bağımlılıkları ekleme başlıklı makaleyi inceleyin.
Geri bildirim
Geri bildiriminiz Jetpack'in iyileştirilmesine yardımcı olur. Yeni sorunlar keşfederseniz veya bu kitaplığı iyileştirmeye yönelik fikirleriniz olursa lütfen bize bildirin. Yeni bir sorun oluşturmadan önce lütfen bu kitaplıktaki mevcut sorunlara göz atın. Yıldız düğmesini tıklayarak mevcut bir soruna oyunuzu ekleyebilirsiniz.
Daha fazla bilgi için Sorun İzleyici belgelerini inceleyin.
Sürüm 1.0
Sürüm 1.0.0-alpha05
30 Temmuz 2025
androidx.xr.arcore:arcore:1.0.0-alpha05
, androidx.xr.arcore:arcore-guava:1.0.0-alpha05
ve androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05
yayınlandı. 1.0.0-alpha05 sürümü bu commit'leri içerir.
Yeni Özellikler
- Geliştiricinin el tarafı bilgilerini (I270bd) alabilmesi için
getPrimaryHandSide
ekleyin. - Coğrafi alan kontrolü VPS kullanılabilirliği API'si ekleyin (I58573)
checkVpsAvailability
(Idbded) için ARCore API'yi ekleyin- Java geliştiricilerin kullanabilmesi için
stateFlowable
uzantı işlevleri:xr:arcore:arcore-rxjava3
'e eklendi. (I083aa, b/427247794)
API Değişiklikleri
- Yapılandırma
*Mode
değerleri, davranışlarını yansıtacak şekilde yeniden adlandırıldı. (I6d247, b/414648065) - Ana ARCore yapısı (xr:arcore:arcore) yalnızca Kotlin tarzı asenkron API'ler içerecektir. Java geliştiriciler, uyumlu API'lere erişmek için
xr:arcore:arcore-rxjava3
kitaplığını kullanabilir. (Ia525e, b/422794329) - Ana ARCore yapısı (
xr:scenecore:scenecore
) yalnızca Kotlin tarzı eş zamansız API'ler içerir. Java geliştiriciler, uyumlu API'lere erişmek içinxr:arcore:arcore-guava
kitaplığını kullanabilir. (Iffcb4, b/422773524) - Java geliştiricilerin kullanımı için
Anchor.persistAsync()
,AnchorGuava
'ye eklendi. (I4af1c, b/425984631) - Java geliştiricilerin kullanımı için
Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)
,EarthGuava
'ye eklendi. (I66357, b/425992992) - Java geliştiriciler,
GltfModel.kt
içindeGltfModel.createAsync
için uzantı işlevlerini kullanır.GltfModel
'daki asenkron işlevler silinecek. (I0af60) - Bu kitaplık artık tür kullanımı olan JSpecify nullness ek açıklamalarını kullanıyor. Kotlin geliştiricileri, doğru kullanımı zorunlu kılmak için şu derleyici bağımsız değişkenini kullanmalıdır:
-Xjspecify-annotations=strict
(bu, Kotlin derleyicisinin 2.1.0 sürümünden itibaren varsayılan değerdir) (Ia8420, b/326456246) - Java geliştiricilerin kullanabilmesi için
subscribeAsFlowable
uzantı işlevleri:xr:arcore:arcore-rxjava3
'e eklendi. (Id3e49, b/427277298)
Sürüm 1.0.0-alpha04
7 Mayıs 2025
androidx.xr.arcore:arcore:1.0.0-alpha04
iptal edilir. 1.0.0-alpha04 sürümü bu commit'leri içerir.
API Değişiklikleri
- Kotlin 2.0 ile yayınlanan projelerin kullanılabilmesi için KGP 2.0.0 veya daha yeni bir sürüm gerekir. (Idb6b5)
TrackingState
veHandJointType
, ARCore'dan Runtime'a taşındı.Hand.State.isActive (boolean)
,Hand.State.trackingState (androidx.xr.runtime.TrackingState)
olarak değiştirildi.- UUID geçersizse
Anchor.load
Anchor.AnchorLoadInvalidUuid
değerini döndürür.
Sürüm 1.0.0-alpha03
26 Şubat 2025
androidx.xr.arcore:arcore:1.0.0-alpha03
, son alfa sürümünden bu yana önemli bir değişiklik yapılmadan yayınlandı. Sürüm 1.0.0-alpha03, bu commit'leri içerir.
Sürüm 1.0.0-alpha02
12 Şubat 2025
androidx.xr.arcore:arcore:1.0.0-alpha02
iptal edilir. 1.0.0-alpha02 sürümü bu commit'leri içerir.
Yeni Özellikler
- El takibi desteği eklendi. İzleme bilgilerine erişmek için
Hand.left
veHand.right
öğelerini kullanın. - Çapa oluşturan API'ler (
Anchor.create
,Anchor.load
,Plane.createAnchor
) artıkAnchorCreateResult
döndürüyor veAnchorCreateResourcesExhausted
'yi düzgün şekilde uyguluyor.
Hata düzeltmeleri
Anchor.detach
, oturum güncelleme iş parçacığıyla yarış durumu nedeniyle artık kritik bir kilitlenmeye neden olmuyor.Anchor.create
, emülatörde çalışırken daha kararlıdır
Sürüm 1.0.0-alpha01
12 Aralık 2024
androidx.xr.arcore:arcore-* 1.0.0-alpha01
iptal edilir.
İlk sürümdeki özellikler
Mevcut ARCore kitaplığından ilham alan Jetpack XR için ARCore kitaplığı, dijital içeriği gerçek dünyayla harmanlama özellikleri sunar. Bu kitaplıkta hareket izleme, kalıcı bağlantılar, isabet testi ve semantik etiketlemeyle (ör. zemin, duvarlar ve masa üstleri) düzlem tanımlama yer alır. Jetpack XR için ARCore ile çalışma hakkında daha fazla bilgi edinmek üzere geliştirici kılavuzunu inceleyin.
Session
: Jetpack XR için ARCore, işlevselliğini sağlamak için Jetpack XR Runtime'ı kullanır. Çoğu ARCore for Jetpack XR API'siyle etkileşim kurmak için Oturum'u kullanacağınızdan lütfen dokümanlarına göz atın.Plane
: Çevrenizdeki dünyayı anlamak için düzlemleri kullanın. Her düzlem, semantik olarak kendisini tanımlayan birLabel
içerir. En son tespit edilen uçaklarla ilgili bildirim almak içinsubscribe
, belirli bir uçakta yapılan değişikliklerle ilgili bildirim almak için isestate
simgesini kullanabilirsiniz.Anchor
: Sanal bir nesne ile gerçek dünyadaki bir konum arasındaki bağlantı. Sabitleyiciler,create
kullanılarak uzayda belirli bir konuma veyaTrackable
kullanılarakcreateAnchor
'a eklenebilir.Bağlantılar oturumlar arasında yeniden kullanılabilir. Bunları depolamak için
persist
, numaralandırmak içingetPersistedAnchorUuids
, almak için iseload
kullanabilirsiniz. Kullanılmadıklarında bunlarıunpersist
.Sabitleyiciler, Jetpack XR için ARCore ve Jetpack SceneCore arasında birlikte çalışabilir. Sabit nokta kullanarak
AnchorEntity
oluşturabilir veya mevcut bir AnchorEntity'niz varsagetAnchor
kullanarak destekleyici sabit noktasını alabilirsiniz.hitTest
kullanarak doğal kullanıcı etkileşimleri sunun. Bir hitTest, hangi içeriklerle kesiştiğini belirlemek ve bu konumdan birAnchor
oluşturmak içinRay
kullanır.InputEvent
öğesinden hitTest yapmayı deneyin.
Bilinen Sorunlar
unpersist
çağrısı yapılmasıyla UUID'siningetPersistedAnchorUuids
tarafından döndürülen sonuçlardan kaldırılması arasında gecikme olabilir.create
, sistemin yeni bağlantılar döndürmek için yeterli kaynağa sahip olduğunu doğrulamayacaktır. Aşırı sayıda bağlantı oluşturmak kilitlenmeye neden olabilir.Daha önce kalıcı hale getirilmiş ve kalıcı hale getirilmemiş bir sabitleme noktasını kalıcı hale getirme şu anda desteklenmemektedir.
Emülatörde kullanım desteklenir ancak davranış, gerçek bir cihazda çalıştırıldığında olduğu kadar kararlı olmayabilir. Özellikle
create
'a yapılan aramalar yerel kod hatasıyla başarısız olabilir ve etkinlik hemen sonlandırılabilir.Bazı durumlarda,
persist
işlevi "Anchor was not persisted" (Sabit nokta kalıcı hale getirilmedi) mesajıyla çağrıldığındaRuntimeException
yanlışlıkla oluşturulabilir. Bu durumlarda işlev yine de başarılı olur ve sabit nokta kalıcı hale getirilir. Geçici çözüm olarakpersist
çağrısınıtry
bloğuyla sarmalamanızı öneririz.