ARCore สำหรับ Jetpack XR
| อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | รุ่นอัลฟ่า |
|---|---|---|---|---|
| 6 พฤษภาคม 2026 | - | - | - | 1.0.0-alpha13 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ใน ARCore สำหรับ Jetpack XR คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ ที่เก็บ Maven ของ Google
เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่ต้องการลงในไฟล์ build.gradle ของแอปหรือโมดูล
ดึงดูด
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha13" // Optional dependencies for asynchronous conversions implementation "androidx.xr.arcore:arcore-guava:1.0.0-alpha13" implementation "androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha13" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha13") // Optional dependencies for asynchronous conversions implementation("androidx.xr.arcore:arcore-guava:1.0.0-alpha13") implementation("androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha13") }
ดูข้อมูลเพิ่มเติมเกี่ยวกับทรัพยากร Dependency ได้ที่หัวข้อเพิ่มทรัพยากร Dependency ในการสร้าง
ความคิดเห็น
ความคิดเห็นของคุณช่วยเราปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่ๆ หรือมีไอเดียในการปรับปรุงไลบรารีนี้ โปรดดู ปัญหาที่มีอยู่แล้ว ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่แล้วได้โดยคลิกปุ่มรูปดาว
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของIssue Tracker
เวอร์ชัน 1.0
เวอร์ชัน 1.0.0-alpha13
6 พฤษภาคม 2026
เปิดตัว 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) - ย้าย API
NativeDataไปที่ไลบรารีxr:runtime:runtime(I87954, b/494251500) - ตอนนี้
Session.createและSession.configureไม่ครอบคลุมทั้งหมดและต้องมีคําสั่ง else ในคําสั่ง when (I9885e, b/495805998, b/495805998) - เลิกใช้งาน
androidx.xr.runtime.FieldOfViewแล้ว ให้ใช้androidx.xr.runtime.math.FieldOfViewแทน (Ia01a0, b/480233045) - เปลี่ยน Orbiter ให้ใช้
OrbiterAnchorPoint + VolumeOffsetหรือOrbiterPoseProviderแทนตําแหน่ง ออฟเซ็ต ประเภทออฟเซ็ต การจัดแนว และระดับความสูง นอกจากนี้ยังนําพารามิเตอร์shouldRenderInNonSpatialออกด้วย หากนักพัฒนาแอปไม่ต้องการให้ Orbiter แสดงผลในพื้นที่ที่ไม่ใช่เชิงพื้นที่ ก็ควรใส่ Orbiter ไว้ในคําสั่ง if และตรวจสอบSpatialCapabilities(I9fbb3, b/462428503) - เพิ่มตัวแก้ไขที่เคลื่อนย้ายได้ ตัวแก้ไขเหล่านี้ทํางานได้ดีในตอนนี้สําหรับ
SpatialPanelsและSpatialExternalSurfaceและจะรองรับSpatialGltfModelsในเร็วๆ นี้ด้วย อย่างไรก็ตาม เราตั้งใจที่จะให้ตัวแก้ไขเหล่านี้รองรับSubspaceComposablesทั้งหมดได้ดี (I9a3cd, b/479530787, b/478935063, b/478935063) - นักพัฒนาแอปควรสังเกต Flow
ArDevice.stateเพื่อตรวจสอบState.trackingStateและปรับการแสดงผลหรือคําเตือนของแอปพลิเคชันตามความเหมาะสมโดยอิงตามความแม่นยําในการติดตาม (Ic00f0, b/445466590) - เปลี่ยนชื่อค่า enum
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 ที่มีฟังก์ชันการทํางาน Entity พื้นฐานเท่านั้น ให้เรียกใช้Entity.createซึ่งจะแสดงผลอินเทอร์เฟซ Entity (I4c450, b/473867483) - เพิ่ม API
XrLogตั้งค่าXrLog.isEnabledเป็นtrueเพื่อเปิดใช้การบันทึกใน JetpackXR และใช้XrLog.Levelเพื่อตั้งค่าระดับการบันทึก (I76a1f, b/463460895, b/487378441)
แก้ไขข้อบกพร่อง
- เพิ่มการรองรับสถานะการติดตามอุปกรณ์ลงในอุปกรณ์ OpenXR (I91485, b/445466590)
เวอร์ชัน 1.0.0-alpha12
25 มีนาคม 2026
เปิดตัว androidx.xr.arcore:arcore-*:1.0.0-alpha12 แล้ว เวอร์ชัน 1.0.0-alpha12 มีการคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เปลี่ยน
Config.augmentedObjectCategoriesจาก List เป็น Set (I25a64, b/487376359) - ประเภท
androidx.xr.arcore.Eyeและandroidx.xr.arcore.Hand(I42438, b/449032900) - เพิ่มการโอเวอร์โหลด
Session.createเพื่ออนุญาตให้ส่งผ่านบริบทของ Android สําหรับการกำหนดขอบเขตทรัพยากร (I7d3fe, b/415805990, b/477386334) - เปลี่ยน
FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMITเป็นFakeRuntimeAnchor.anchorResourceLimit(I90841, b/431992235) - ทําให้ API
TiltGestureเป็นแบบทดลอง เนื่องจากอาจมีการเปลี่ยนแปลงหรือนําออกในอนาคต หากต้องการใช้ API นี้ ให้เลือกใช้@ExperimentalGesturesApi(Ic9858) - เพิ่มความสามารถในการตั้งค่าหมวดหมู่สําหรับการติดตาม
AugmentedObjectใน Config (I1f6e4, b/480220930)
แก้ไขข้อบกพร่อง
- แก้ไขการสร้าง Chrome โดยการอัปเดตไฟล์ META-INF/services/ ด้วยตําแหน่งจริงของ
PerceptionRuntimeFactory(I7a801, b/481288291)
เวอร์ชัน 1.0.0-alpha11
25 กุมภาพันธ์ 2026
เปิดตัว androidx.xr.arcore:arcore-*:1.0.0-alpha11 แล้ว เวอร์ชัน 1.0.0-alpha11 มี การคอมมิตต่อไปนี้
เวอร์ชัน 1.0.0-alpha10
28 มกราคม 2026
เปิดตัว androidx.xr.arcore:arcore-*:1.0.0-alpha10 แล้ว เวอร์ชัน 1.0.0-alpha10 มี การคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
- เปิดตัว API
TiltGestureซึ่งมีFlowแบบโต้ตอบสําหรับการตรวจจับสถานะการเอียง (ขึ้น/ลง) ของอุปกรณ์อย่างเสถียรพร้อมความคืบหน้าในการเปลี่ยนผ่าน (Ic269f, b/448152779) - ตอนนี้ ARCore สำหรับ Jetpack XR ใช้กลไกการบันทึก XR Runtime แล้ว ดูข้อมูลเพิ่มเติมได้ที่
androidx.xr.runtime.Log(l52735, b/448697662)
การเปลี่ยนแปลง API
- ตอนนี้
Geospatial.createPoseFromGeospatialPoseใช้งานได้ในอุปกรณ์ที่เปิดใช้ OpenXR แล้ว (l362c6)
เวอร์ชัน 1.0.0-alpha09
3 ธันวาคม 2025
เปิดตัว androidx.xr.arcore:arcore-*:1.0.0-alpha09 แล้ว เวอร์ชัน 1.0.0-alpha09 มี การคอมมิตต่อไปนี้
เวอร์ชัน 1.0.0-alpha08
19 พฤศจิกายน 2025
เปิดตัว androidx.xr.arcore:arcore-*:1.0.0-alpha08 แล้ว เวอร์ชัน 1.0.0-alpha08 มีการคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
- ตอนนี้
ARCoreสำหรับ Jetpack XR รองรับอุปกรณ์ที่มีบริการ Google Play สำหรับ AR แล้ว - เพิ่ม Geospatial API สําหรับความพร้อมใช้งานของ VPS และการแปลงท่า (I144dc)
เวอร์ชัน 1.0.0-alpha07
22 ตุลาคม 2025
เปิดตัว androidx.xr.arcore:arcore-*:1.0.0-alpha07 แล้ว เวอร์ชัน 1.0.0-alpha07 มีการคอมมิตต่อไปนี้
แก้ไขข้อบกพร่อง
:xr:arcore:arcore-openxrเพิ่มเป็นทรัพยากร Dependency ในการติดตั้งใช้งานลงใน:xr:arcore:arcore(I47315, b/446999229)
เวอร์ชัน 1.0.0-alpha06
24 กันยายน 2025
เปิดตัว androidx.xr.arcore:arcore-*:1.0.0-alpha06 แล้ว เวอร์ชัน 1.0.0-alpha06 มีการคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- การรองรับการทดสอบ
ARCoreได้ย้ายไปอยู่ที่โมดูลxr:arcore:arcore-testingแล้ว (I25469) - เพิ่ม
ArDeviceและRenderViewpointเพื่ออนุญาตให้แอปพลิเคชันดึงท่าทางและการกําหนดค่าการแสดงผลของอุปกรณ์เพื่อวัตถุประสงค์ในการแสดงผล (Ib7e3f) - เปลี่ยนชื่อ enum
HandJointTypeโดยใช้คํานําหน้าHAND_JOINT_TYPE_(I3f7cd) - ย้าย
HandJointTypeจากxr:runtime:runtimeไปที่xr:arcore:arcore(Iadb9c, b/409058039) Hand.Stateตอนนี้แสดงjava.nio.FloatBufferพร้อมท่าทางของข้อต่อในรูปแบบที่ช่วยให้เข้าถึงแอปพลิเคชันที่เน้นประสิทธิภาพได้ง่าย (I55e27)
เวอร์ชัน 1.0.0-alpha05
30 กรกฎาคม 2025
เปิดตัว 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) - เพิ่ม Geospatial API เพื่อตรวจสอบความพร้อมใช้งานของ VPS (I58573)
- เพิ่ม ARCore API สําหรับ
checkVpsAvailability(Idbded) - เพิ่มฟังก์ชันส่วนขยาย
stateFlowableลงใน:xr:arcore:arcore-rxjava3เพื่อให้นักพัฒนาแอป Java ใช้งานได้ (I083aa, b/427247794)
การเปลี่ยนแปลง API
- เปลี่ยนชื่อค่า
*Modeของ Config เพื่อให้สะท้อนลักษณะการทํางาน (I6d247, b/414648065) - อาร์ติแฟกต์ ARCore หลัก (xr:arcore:arcore) จะมีเฉพาะ API แบบไม่พร้อมกันในรูปแบบ Kotlin นักพัฒนาแอป Java สามารถใช้ไลบรารี
xr:arcore:arcore-rxjava3เพื่อเข้าถึง API ที่เข้ากันได้ (Ia525e, b/422794329) - อาร์ติแฟกต์ ARCore หลัก (
xr:scenecore:scenecore) จะมีเฉพาะ API แบบไม่พร้อมกันในรูปแบบ Kotlin นักพัฒนาแอป 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.createAsyncในGltfModel.ktระบบจะลบฟังก์ชันแบบไม่พร้อมกันในGltfModel(I0af60) - ตอนนี้ไลบรารีนี้ใช้ คำอธิบายประกอบการอนุญาตให้เป็น Null ของ 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
7 พฤษภาคม 2025
เปิดตัว androidx.xr.arcore:arcore:1.0.0-alpha04 แล้ว เวอร์ชัน 1.0.0-alpha04 มีการคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- โปรเจ็กต์ที่เผยแพร่ด้วย Kotlin 2.0 ต้องใช้ KGP 2.0.0 ขึ้นไป (Idb6b5)
- ย้าย
TrackingStateและHandJointTypeจาก ARCore ไปที่ Runtime แล้ว - เปลี่ยน
Hand.State.isActive (boolean)เป็นHand.State.trackingState (androidx.xr.runtime.TrackingState) Anchor.loadจะแสดงผลAnchor.AnchorLoadInvalidUuidหาก UUID ไม่ถูกต้อง
เวอร์ชัน 1.0.0-alpha03
26 กุมภาพันธ์ 2025
เปิดตัว androidx.xr.arcore:arcore:1.0.0-alpha03 แล้ว โดยไม่มีการเปลี่ยนแปลงที่สําคัญนับตั้งแต่เวอร์ชันอัลฟ่าล่าสุด เวอร์ชัน 1.0.0-alpha03 มีการคอมมิตต่อไปนี้
เวอร์ชัน 1.0.0-alpha02
12 กุมภาพันธ์ 2025
เปิดตัว androidx.xr.arcore:arcore:1.0.0-alpha02 แล้ว เวอร์ชัน 1.0.0-alpha02 มีการคอมมิตต่อไปนี้
ฟีเจอร์ใหม่
- เพิ่มการรองรับการติดตามการเคลื่อนไหวของมือ ใช้
Hand.leftและHand.rightเพื่อเข้าถึงข้อมูลการติดตาม - ตอนนี้ API ที่สร้าง Anchor (
Anchor.create,Anchor.load,Plane.createAnchor) ทั้งหมดจะแสดงผลAnchorCreateResultและใช้AnchorCreateResourcesExhaustedอย่างถูกต้อง
แก้ไขข้อบกพร่อง
Anchor.detachไม่ทําให้เกิดข้อผิดพลาดร้ายแรงอีกต่อไปเนื่องจากภาวะแข่งขันกับเธรดการอัปเดตเซสชันAnchor.createมีความเสถียรมากขึ้นเมื่อทํางานในโปรแกรมจำลอง
เวอร์ชัน 1.0.0-alpha01
12 ธันวาคม 2024
เปิดตัว androidx.xr.arcore:arcore-* 1.0.0-alpha01 แล้ว
ฟีเจอร์ของรุ่นเริ่มต้น
ไลบรารี ARCore สำหรับ Jetpack XR ได้รับแรงบันดาลใจจากไลบรารี ARCore ที่มีอยู่ และมีความสามารถในการผสมผสานเนื้อหาดิจิทัลเข้ากับโลกแห่งความเป็นจริง ไลบรารีนี้มีการติดตามการเคลื่อนไหว Anchor แบบถาวร การทดสอบการชน และการระบุระนาบด้วยการติดป้ายกำกับเชิงความหมาย (เช่น พื้น ผนัง และโต๊ะ) ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ ARCore สำหรับ Jetpack XR ได้ในคู่มือสำหรับนักพัฒนาแอป
Session: ARCore สำหรับ Jetpack XR ใช้ Jetpack XR Runtime เบื้องหลังเพื่อขับเคลื่อนฟังก์ชันการทำงาน คุณจะใช้ Session เพื่อโต้ตอบกับ API ส่วนใหญ่ของ ARCore สำหรับ Jetpack XR ดังนั้นโปรดดูเอกสารประกอบPlane: ใช้ระนาบเพื่อทำความเข้าใจโลกรอบตัวคุณ ระนาบแต่ละระนาบจะมีLabelที่อธิบายระนาบในเชิงความหมาย คุณสามารถใช้subscribeเพื่อรับการแจ้งเตือนเกี่ยวกับระนาบที่ตรวจพบล่าสุด หรือใช้stateเพื่อรับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงระนาบที่เฉพาะเจาะจงAnchor: ลิงก์ระหว่างออบเจ็กต์เสมือนกับตําแหน่งในโลกแห่งความเป็นจริง คุณสามารถแนบ Anchor กับตําแหน่งที่เฉพาะเจาะจงในพื้นที่ (โดยใช้create) หรือTrackable(โดยใช้createAnchor)คุณสามารถใช้ Anchor ซ้ำในเซสชันต่างๆ ได้ คุณสามารถใช้
persistเพื่อจัดเก็บ Anchor,getPersistedAnchorUuidsเพื่อแสดงรายการ Anchor และloadเพื่อดึง Anchor อย่าลืมunpersistเมื่อไม่ได้ใช้งานแล้วAnchor สามารถทํางานร่วมกันได้ระหว่าง ARCore สำหรับ Jetpack XR กับ Jetpack SceneCore คุณสามารถสร้าง
AnchorEntityโดยใช้ Anchor หรือหากมี AnchorEntity อยู่แล้ว คุณสามารถใช้getAnchorเพื่อดึง Anchor ที่รองรับมอบประสบการณ์การโต้ตอบกับผู้ใช้ที่เป็นธรรมชาติโดยใช้
hitTesthitTest ใช้Rayเพื่อกําหนดเนื้อหาที่ตัดกันและสร้างAnchorจากตําแหน่งนั้น พิจารณาทํา hitTest จากInputEvent
ปัญหาที่ทราบเกี่ยวกับ
อาจมีความล่าช้าระหว่างการเรียก
unpersistกับการนํา UUID ออกจากผลลัพธ์ที่แสดงโดยgetPersistedAnchorUuidscreateจะไม่ตรวจสอบว่าระบบมีทรัพยากรเพียงพอที่จะแสดงผล Anchor ใหม่ การสร้าง Anchor มากเกินไปอาจทําให้เกิดข้อผิดพลาดปัจจุบันระบบยังไม่รองรับการคงอยู่ของ Anchor ที่เคยคงอยู่และไม่คงอยู่
ระบบรองรับการใช้งานในโปรแกรมจำลอง แต่ลักษณะการทํางานอาจไม่เสถียรเท่ากับการทํางานในอุปกรณ์จริง โดยเฉพาะอย่างยิ่ง การเรียก
createอาจล้มเหลวเนื่องจากข้อผิดพลาดของโค้ดแบบเนทีฟและยุติกิจกรรมทันทีในบางกรณี ระบบอาจแสดง
RuntimeExceptionอย่างไม่ถูกต้องเมื่อเรียกpersistพร้อมข้อความ "Anchor was not persisted" ในกรณีดังกล่าว ฟังก์ชันจะยังคงทํางานสําเร็จและ Anchor จะยังคงอยู่ เราขอแนะนําให้ใส่การเรียกpersistไว้ในบล็อกtryเพื่อเป็นวิธีแก้ปัญหา