Jetpack XR 適用的 ARCore
| 最近更新時間 | 穩定版 | 候選版 | Beta 版 | Alpha 版 |
|---|---|---|---|---|
| 2026 年 10 月 21 日 | 1.0.0 | - | - | 1.1.0-alpha01 |
宣告依附元件
如要為 Jetpack XR 的 ARCore 新增依附元件,您必須將 Google Maven 存放區新增至專案。詳情請參閱 Google 的 Maven 存放區。
在應用程式或模組的 build.gradle 檔案中,新增所需構件的依附元件:
Groovy
dependencies { implementation "androidx.xr.arcore:arcore:1.1.0-alpha01" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.1.0-alpha01") }
如要進一步瞭解依附元件,請參閱「新增建構依附元件」一文。
意見回饋
您的意見可協助我們改善 Jetpack。如果您發現新問題,或是有改進這個程式庫的建議,請告訴我們。回報新問題前,請先查看這個程式庫的現有問題。只要按一下星號按鈕,即可投票給現有的問題。
詳情請參閱 Issue Tracker 文件。
1.1 版本
1.1.0-alpha01 版本
2026 年 10 月 21 日
發布 androidx.xr.arcore:arcore-*:1.1.0-alpha01。1.1.0-alpha01 版包含這些修訂項目。
API 變更
- 推出
SpatialAnnotationAPI,用於追蹤 3D 實體幾何圖形和物件。新增SpatialAnnotationTrackingOptions和對應的建構工具模式,可透過相機圖片緩衝區設定空間追蹤。(I918ce) - 在 Jetpack XR ARCore 中推出
SpatialAnnotation和SpatialAnnotationTrackingMode,讓開發人員能設定及追蹤針對實體真實世界空間環境的任意有界 3D 四邊形幾何圖形 (Quad)。(I880e4) - 新增
TestSpatialAnnotation,允許在自動化測試中以程式輔助方式模擬空間註解。(If2335) - 新增
geospatialPose、horizontalAccuracy、verticalAccuracy和orientationYawAccuracy做為新 API,在地理空間狀態中提供更多資訊。(If28f8)
修正錯誤
androidx.lifecycle:lifecycle-runtime依附元件已更新至 2.10.0。如要搭配 AGP 9.5.0-alpha04 以上版本執行套裝生命週期執行階段 Lint 檢查,則必須使用這個版本。(I99bfd、b/556807521)- 設定
AugmentedImage時,檢查圖片數量上限是否為 0,並擲回UnsupportedOperationException,而非意外失敗。I6ce439 - 妥善追蹤及取消算繪工作、處置實體,以及安全修改圖片集合,修正
AugmentedImageRenderer中的記憶體流失和並行問題。Ie70760
1.0 版本
1.0.0 版
2026 年 10 月 21 日
發布 androidx.xr.arcore:arcore-*:1.0.0。1.0.0 版包含這些修訂項目。
1.0.0 的主要功能:
- ARCore for Jetpack XR 現已推出穩定版!ARCore for Jetpack XR 程式庫提供將數位內容與真實世界融合的功能。這個程式庫包含動作追蹤、永久錨點、點擊測試、使用語意標籤 (例如地板、牆壁和桌面) 辨識平面,以及使用 Google 視覺定位系統的地理空間姿勢。
- 詳情請參閱開發人員指南和 API 參考資料。
1.0.0-rc02 版
2026 年 10 月 7 日
發布 androidx.xr.arcore:arcore-*:1.0.0-rc02。1.0.0-rc02 版包含這些修訂項目。
修正錯誤
- 修正問題:不支援擴增圖片追蹤功能時,
OpenXrRuntime無法設定工作階段。(I8b9759) - 修正多項問題,包括:使用
applicationContext改善XrInstanceManager的記憶體管理、簡化Session和Scene快取機制,解決潛在的生命週期相關問題,以及強化ReferenceCleaner,確保執行緒安全的清除註冊和明確處置。(Id0b76c)
1.0.0-rc01 版
2026 年 9 月 9 日
發布 androidx.xr.arcore:arcore-*:1.0.0-rc01。1.0.0-rc01 版本包含這些修訂版本。
1.0.0-beta02 版
2026 年 8 月 12 日
發布 androidx.xr.arcore:arcore-*:1.0.0-beta02。1.0.0-beta02 版包含這些修訂項目。
修正錯誤
1.0.0-beta01 版
2026 年 7 月 15 日
發布 androidx.xr.arcore:arcore-*:1.0.0-beta01。1.0.0-beta01 版包含這些修訂項目。
API 變更
- 更新可調整大小的修飾符,改用
ResizePolicy,而非兩個修飾符 (I7fb0f、b/496257436、b/519672992) - 新增含有
movePolicy參數的可移動超載,並淘汰transformingMovable和movable(Ic88c1、b/481781189) - 從公開 API 介面中移除
TrackingState.TRACKING_DEGRADED,並將地圖執行階段降級狀態改為 PAUSED。更新TrackingState,使用列舉而非 int 值進行字串轉換和執行階段轉換。(I3eb5b、b/524326338) - 將 Session.create 轉換為暫停函式。(I5d27f)
- 淘汰
ProjectedPermissionsResultContract(I141d5、b/515699436) - 將
AnchorEntity更新為AnchorSpace(Ifa95e、b/513619219)
1.0.0-alpha15 版本
2026 年 6 月 17 日
發布 androidx.xr.arcore:arcore-*:1.0.0-alpha15。1.0.0-alpha15 版包含這些修訂項目。
API 變更
- 已移除「
HitResult.createAnchor」,如果結果的可追蹤項目是Anchorable,開發人員可以將命中位置提供給Anchorable的createAnchor函式,建立代表HitResult的錨點。(Ia851e) - 已移除「
AnchorUnsupportedObject」,JXR ARCore 執行階段不會再擲回這個例外狀況。(Ia851e) androidx.xr.arcore.Anchor和androidx.xr.arcore.ArDevice現在會實作androidx.xr.arcore.Trackable。(I57b65)Depth.left、Depth.right和Depth.mono現在不可為空值 (I1fc5e)Face.getUserFace現在不可為空值 (I0eac1)RenderViewpoint.left、RenderViewpoint.right、RenderViewpoint.mono現在不可為空值 (Icf7fa)Hand.left和Hand.right不可為空值 (Icef37)- 新增
QrCodeAPI (Ia0bbe)
1.0.0-alpha14 版本
2026 年 5 月 19 日
發布 androidx.xr.arcore:arcore-*:1.0.0-alpha14。1.0.0-alpha14 版包含這些修訂項目。
API 變更
- 淘汰
GeospatialMode.VPS_AND_GPS,改用GeospatialMode.SPATIAL,並推出新的低功耗追蹤模式GeospatialMode.INERTIAL,僅使用 IMU 和 GPS。(I1e6cd) - 自訂錨定例外狀況類別:
AnchorInvalidUuidException、AnchorNotAuthorizedException、AnchorUnsupportedLocationException、AnchorRuntimeFailureException和AnchorUnsupportedObjectException現在是RuntimeException執行個體,不應檢查。(I9356e) - 新增
ArCoreTestRuleAPI,包括TestArDevice、TestAugmentableObject、TestDepthMap、TestEye、TestFace、TestGeospatial、TestHand、TestPlane、TestRenderViewpoint和TestTrackable(I0ad3c) - 移除
AnchorLoadInvalidUuid、AnchorCreateUnsupportedObject、AnchorCreateUnsupportedLocation和AnchorCreateNotAuthorized。現在,所有這些錯誤在執行階段都會視為例外狀況。移除AnchorCreateIllegalState。在多數情況下,這項功能已由AnchorCreateTrackingUnavailable取代。新增AnchorException和衍生類別AnchorInvalidUuidException、AnchorNotAuthorizedException、AnchorUnsupportedLocationException、AnchorRuntimeFailureException和AnchorUnsupportedObjectException。(I4c4dd)
外部貢獻
- 新增用於追蹤自訂標記的
AugmentedImageAPI (I0cf09)
1.0.0-alpha13 版
2026 年 5 月 6 日
發布 androidx.xr.arcore:arcore-*:1.0.0-alpha13。1.0.0-alpha13 版包含這些修訂項目。
API 變更
TrackingState和VpsAvailabilityResult已移至androidx.xr.arcore package,且androidx.xr.runtime中的類型現已淘汰。(Ic7930、b/480462213)Plane.Type已重新命名為PlaneType。(I8c90c、b/482675376)Hand.HandSide已重新命名為HandSide。(Ica562、b/482675376)Plane.Label已重新命名為PlaneLabel。(Ic6b67、b/482675376)Geospatial.Surface已重新命名為GeospatialSurface。(I1a8be、b/482675376)Geospatial.State已重新命名為GeospatialState。(I203fa、b/482675376)- 將
NativeDataAPI 移至xr:runtime:runtime程式庫。(I87954、b/494251500) Session.create和Session.configure現在僅列舉部分內容,且 when 陳述式中必須包含 else 子句。(I9885e、b/495805998、b/495805998)- 淘汰了
androidx.xr.runtime.FieldOfView。請改用androidx.xr.runtime.math.FieldOfView(Ia01a0、b/480233045) - 將 Orbiter 變更為使用
OrbiterAnchorPoint + VolumeOffset或OrbiterPoseProvider,而非位置、偏移、offsetType、對齊和高度。同時也移除了shouldRenderInNonSpatial參數。如果開發人員不希望在非空間模式中算繪 Orbiter,應將 Orbiter 包裝在 if 陳述式中,並檢查SpatialCapabilities。(I9fbb3、b/462428503) - 新增可移動的修飾符。這些修飾符目前適用於
SpatialPanels和SpatialExternalSurface。SpatialGltfModels很快也會支援這項功能。不過,我們的目標是讓所有SubspaceComposables都能妥善支援這些功能。(I9a3cd、b/479530787、b/478935063、b/478935063) - 開發人員應觀察
ArDevice.stateFlow 來監控State.trackingState,並根據追蹤精確度調整應用程式的算繪或警告。(Ic00f0、b/445466590) - 重新命名
HandJointType列舉值。(Ifbc83、b/482670596) - 重新命名
FaceConfidenceRegion常數。(Ia62d5、b/482670596) - 重新命名
FaceBlendShapeType常數。(I33b8b、b/482670596) - 新增
CreatePoseFromGeospatialPoseErrorInternal及CreateGeospatialPoseFromPoseErrorInternal。(I4bcf1、b/482666615) - 將
DeviceTrackingMode.LAST_KNOWN重新命名為SPATIAL_LAST_KNOWN(包含已淘汰的備用方案)、新增INERTIAL_LAST_KNOWN以進行 3DoF 追蹤,並將TRACKING_DEGRADED新增至TrackingState。(Ie661c、b/445466590) - 淘汰了
GroupEntity。如要讓實體僅具備基本實體功能,請呼叫Entity.create,系統會傳回實體介面。(I4c450、b/473867483) - 新增
XrLogAPI。將XrLog.isEnabled設為true,即可在 JetpackXR 中啟用記錄功能,並使用XrLog.Level設定記錄層級。(I76a1f、b/463460895、b/487378441)
修正錯誤
- 為 OpenXR 裝置新增裝置追蹤狀態支援。(I91485、b/445466590)
1.0.0-alpha12 版
2026 年 3 月 25 日
發布 androidx.xr.arcore:arcore-*:1.0.0-alpha12。1.0.0-alpha12 版包含這些修訂項目。
API 變更
Config.augmentedObjectCategories已從清單變更為集合。(I25a64、b/487376359)androidx.xr.arcore.Eye和androidx.xr.arcore.Hand類型。(I42438、b/449032900)- 新增
Session.create超載,允許傳遞 Android Context 以限定資源範圍。(I7d3fe、b/415805990、b/477386334) - 將
FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMIT變更為FakeRuntimeAnchor.anchorResourceLimit。(I90841、b/431992235) - 將
TiltGestureAPI 設為實驗性,因為日後可能會變更或移除。如要使用這個 API,請選擇加入@ExperimentalGesturesApi(Ic9858) - 新增在 Config 中設定
AugmentedObject追蹤類別的功能 (I1f6e4、b/480220930)
修正錯誤
- 更新 META-INF/services/ 檔案,並提供
PerceptionRuntimeFactory的實際位置,藉此修正 Chrome 的建構作業。(I7a801、b/481288291)
1.0.0-alpha11 版本
2026 年 2 月 25 日
發布 androidx.xr.arcore:arcore-*:1.0.0-alpha11。1.0.0-alpha11 版包含這些修訂項目。
1.0.0-alpha10 版本
2026 年 1 月 28 日
發布 androidx.xr.arcore:arcore-*:1.0.0-alpha10。1.0.0-alpha10 版包含這些修訂項目。
新功能
- 推出
TiltGestureAPI,提供回應式Flow,可穩定偵測裝置傾斜 (向上/向下) 狀態和轉換進度。(Ic269f、b/448152779) - Jetpack XR 適用的 ARCore 現在會使用 XR 執行階段記錄機制。詳情請參閱
androidx.xr.runtime.Log。(l52735、b/448697662)
API 變更
Geospatial.createPoseFromGeospatialPose現在可在支援 OpenXR 的裝置上運作。(l362c6)
1.0.0-alpha09 版本
2025 年 12 月 3 日
發布 androidx.xr.arcore:arcore-*:1.0.0-alpha09。1.0.0-alpha09 版包含這些修訂項目。
1.0.0-alpha08 版本
2025 年 11 月 19 日
發布 androidx.xr.arcore:arcore-*:1.0.0-alpha08。1.0.0-alpha08 版包含這些修訂項目。
新功能
- Jetpack XR 的
ARCore現在支援可使用 Google Play 服務 - AR 適用的裝置。 - 新增 Geospatial API,用於 VPS 可用性和姿勢轉換 (I144dc)
1.0.0-alpha07 版本
October 22, 2025
發布 androidx.xr.arcore:arcore-*:1.0.0-alpha07。1.0.0-alpha07 版包含這些修訂版本。
修正錯誤
:xr:arcore:arcore-openxr已新增為:xr:arcore:arcore的實作依附元件 (I47315、b/446999229)
1.0.0-alpha06 版本
2025 年 9 月 24 日
發布 androidx.xr.arcore:arcore-*:1.0.0-alpha06。1.0.0-alpha06 版包含這些修訂項目。
API 變更
ARCore的測試支援已遷移至xr:arcore:arcore-testing模組。(I25469)- 新增
ArDevice和RenderViewpoint,允許應用程式擷取裝置的姿勢和顯示設定,以便進行算繪。(Ib7e3f) - 使用
HAND_JOINT_TYPE_前置字元重新命名HandJointType列舉。(I3f7cd) HandJointType已從xr:runtime:runtime移至xr:arcore:arcore。(Iadb9c、b/409058039)Hand.State現在會公開java.nio.FloatBuffer,其中包含關節姿勢,格式可讓注重效能的應用程式輕鬆存取。(I55e27)
1.0.0-alpha05 版本
2025 年 7 月 30 日
發布 androidx.xr.arcore:arcore:1.0.0-alpha05、androidx.xr.arcore:arcore-guava:1.0.0-alpha05 和 androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05。1.0.0-alpha05 版包含這些修訂項目。
新功能
- 新增
getPrimaryHandSide,讓開發人員取得手部資訊 (I270bd) - 新增地理空間檢查 VPS 可用性 API (I58573)
- 新增
checkVpsAvailability的 ARCore API (Idbded) stateFlowable擴充功能函式已新增至:xr:arcore:arcore-rxjava3,供 Java 開發人員使用。(I083aa、b/427247794)
API 變更
- Config
*Mode值已重新命名,以反映其行為。(I6d247、b/414648065) - 主要 ARCore 構件 (xr:arcore:arcore) 只會包含 Kotlin 樣式的非同步 API。Java 開發人員可以依附
xr:arcore:arcore-rxjava3程式庫,存取相容的 API。(Ia525e、b/422794329) - 主要 ARCore 構件 (
xr:scenecore:scenecore) 只會包含 Kotlin 樣式的非同步 API。Java 開發人員可以依附xr:arcore:arcore-guava程式庫,存取相容的 API。(Iffcb4、b/422773524) Anchor.persistAsync()已新增至AnchorGuava,供 Java 開發人員使用。(I4af1c、b/425984631)Earth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)已新增至EarthGuava,供 Java 開發人員使用。(I66357、b/425992992)- Java 開發人員會使用
GltfModel.kt中GltfModel.createAsync的擴充功能函式。GltfModel中的非同步函式將會刪除。(I0af60) - 這個程式庫現在使用 JSpecify 可為空值註解,屬於類型用途。Kotlin 開發人員應使用下列編譯器引數,強制執行正確用法:
-Xjspecify-annotations=strict(這是 Kotlin 編譯器 2.1.0 以上版本的預設值) (Ia8420、b/326456246) subscribeAsFlowable擴充功能函式已新增至:xr:arcore:arcore-rxjava3,供 Java 開發人員使用。(Id3e49、b/427277298)
1.0.0-alpha04 版本
2025 年 5 月 7 日
發布 androidx.xr.arcore:arcore:1.0.0-alpha04。1.0.0-alpha04 版包含這些修訂項目。
API 變更
- 使用 Kotlin 2.0 發布的專案需要 KGP 2.0.0 以上版本才能使用。(Idb6b5)
TrackingState和HandJointType已從 ARCore 移至執行階段。Hand.State.isActive (boolean)已變更為Hand.State.trackingState (androidx.xr.runtime.TrackingState)。- 如果 UUID 無效,
Anchor.load會傳回Anchor.AnchorLoadInvalidUuid。
1.0.0-alpha03 版本
2025 年 2 月 26 日
androidx.xr.arcore:arcore:1.0.0-alpha03 發布,與上一個 Alpha 版相比沒有重大異動。1.0.0-alpha03 版包含這些修訂版本。
1.0.0-alpha02 版
2025 年 2 月 12 日
發布 androidx.xr.arcore:arcore:1.0.0-alpha02。1.0.0-alpha02 版包含這些修訂項目。
新功能
- 新增手勢追蹤支援。使用
Hand.left和Hand.right存取追蹤資訊。 - 產生錨點 (
Anchor.create、Anchor.load、Plane.createAnchor) 的 API 現在都會傳回AnchorCreateResult,並正確實作AnchorCreateResourcesExhausted。
修正錯誤
Anchor.detach不會再因與工作階段更新執行緒發生競爭狀況,而導致嚴重當機。Anchor.create在模擬器上執行時更穩定
1.0.0-alpha01 版
2024 年 12 月 12 日
發布 androidx.xr.arcore:arcore-* 1.0.0-alpha01。
初始版本的功能
ARCore for Jetpack XR 程式庫的靈感來自現有的 ARCore 程式庫,可將數位內容與真實世界融合。這個程式庫包含動作追蹤、永久錨點、點擊測試,以及平面識別與語意標籤 (例如地板、牆壁和桌面)。請參閱開發人員指南,進一步瞭解如何搭配使用 ARCore 和 Jetpack XR。
Session:ARCore for Jetpack XR 會在背景使用 Jetpack XR Runtime 執行功能。您會使用工作階段與大多數 Jetpack XR 版 ARCore API 互動,因此請參閱相關說明文件。Plane:使用平面瞭解周遭世界。每個平面都有一個Label,用於描述其語意。您可以使用subscribe接收最新偵測到的平面通知,或使用state接收特定平面的變更通知。Anchor:虛擬物件與真實世界位置之間的連結。錨點可以附加至空間中的特定位置 (使用create) 或Trackable(使用createAnchor)。錨點可在不同工作階段重複使用。您可以使用
persist儲存這些值、使用getPersistedAnchorUuids列舉這些值,以及使用load擷取這些值。請務必在不再使用時unpersist。錨點可在 ARCore for Jetpack XR 和 Jetpack SceneCore 之間互通。您可以使用錨點建立
AnchorEntity,或使用getAnchor擷取現有 AnchorEntity 的支援錨點。使用
hitTest提供自然的使用者互動。hitTest 會使用Ray判斷與其交集的內容,並從該位置建立Anchor。建議從InputEvent執行 hitTest。
已知問題
呼叫
unpersist後,系統可能需要一段時間,才會從getPersistedAnchorUuids傳回的結果中移除 UUID。create不會驗證系統是否有足夠資源傳回新的錨點。建立過多錨點可能會導致當機。目前不支援持續保存先前已保存和未保存的錨點。
模擬器支援這項功能,但行為可能不如在實際裝置上執行時穩定。具體來說,呼叫
create可能會失敗,並顯示原生程式碼錯誤,且立即終止活動。在某些情況下,呼叫
persist時可能會錯誤擲回RuntimeException,並顯示「Anchor was not persisted」訊息。在這種情況下,函式仍會成功,且錨點會保留。建議您使用try區塊包裝persist呼叫,做為替代方案。