ARCore สำหรับ Jetpack XR
อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | รุ่นอัลฟ่า |
---|---|---|---|---|
30 กรกฎาคม 2025 | - | - | - | 1.0.0-alpha05 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มทรัพยากร Dependency ใน ARCore สำหรับ Jetpack XR คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ ที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle
สำหรับแอปหรือโมดูลของคุณ
ดึงดูด
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha05" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha05") }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยเราปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา
รุ่น 1.0
เวอร์ชัน 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) - เพิ่ม API ความพร้อมใช้งานของ VPS สำหรับการตรวจสอบภูมิสารสนเทศ (I58573)
- เพิ่ม ARCore API สำหรับ
checkVpsAvailability
(Idbded) - เพิ่มฟังก์ชันส่วนขยาย
stateFlowable
ลงใน:xr:arcore:arcore-rxjava3
เพื่อให้นักพัฒนาซอฟต์แวร์ Java ใช้งานได้ (I083aa, b/427247794)
การเปลี่ยนแปลง API
- เราได้เปลี่ยนชื่อค่าการกำหนดค่า
*Mode
เพื่อให้สอดคล้องกับลักษณะการทำงานของค่าเหล่านั้น (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 ไปยังรันไทม์แล้ว - เปลี่ยน
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 ที่มีอยู่ และมอบความสามารถในการผสมผสานเนื้อหาดิจิทัลเข้ากับโลกจริง ไลบรารีนี้ประกอบด้วยการติดตามการเคลื่อนไหว สมอแบบถาวร การทดสอบการตรวจจับ และการระบุระนาบด้วยการติดป้ายกำกับเชิงความหมาย (เช่น พื้น ผนัง และโต๊ะ) ดูข้อมูลเพิ่มเติมเกี่ยวกับการทำงานกับ ARCore สำหรับ Jetpack XR ได้ในคู่มือนักพัฒนาซอฟต์แวร์
Session
: ARCore สำหรับ Jetpack XR ใช้รันไทม์ Jetpack XR เบื้องหลังเพื่อขับเคลื่อนฟังก์ชันการทำงาน คุณจะใช้เซสชันเพื่อโต้ตอบกับ API ของ ARCore สำหรับ Jetpack XR ส่วนใหญ่ ดังนั้นโปรดดูเอกสารประกอบPlane
: ใช้เครื่องบินเพื่อทำความเข้าใจโลกรอบตัว ระนาบแต่ละระนาบมีLabel
ที่อธิบายระนาบนั้นในเชิงความหมาย คุณใช้subscribe
เพื่อรับการแจ้งเตือนเกี่ยวกับเครื่องบินที่ตรวจพบใหม่ล่าสุด หรือstate
เพื่อรับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงของเครื่องบินที่เฉพาะเจาะจงได้Anchor
: ลิงก์ระหว่างออบเจ็กต์เสมือนกับสถานที่ในโลกแห่งความจริง คุณแนบ Anchor กับตำแหน่งที่เฉพาะเจาะจงในพื้นที่ (โดยใช้create
) หรือTrackable
(โดยใช้createAnchor
) ได้คุณนำจุดยึดกลับมาใช้ใหม่ได้ในเซสชันต่างๆ คุณสามารถใช้
persist
เพื่อจัดเก็บgetPersistedAnchorUuids
เพื่อแสดงรายการ และload
เพื่อดึงข้อมูล โปรดunpersist
เมื่อไม่ได้ใช้งานแล้วAnchor สามารถทำงานร่วมกันระหว่าง ARCore สำหรับ Jetpack XR และ Jetpack SceneCore ได้ คุณสามารถสร้าง
AnchorEntity
โดยใช้ Anchor หรือหากมี AnchorEntity อยู่แล้ว คุณสามารถใช้getAnchor
เพื่อดึงข้อมูล Anchor ที่รองรับได้เสนอการโต้ตอบของผู้ใช้ที่เป็นธรรมชาติโดยใช้
hitTest
HitTest ใช้Ray
เพื่อระบุเนื้อหาที่ตัดกันและสร้างAnchor
จากตำแหน่งนั้น ลองทำการทดสอบการยิงรังสีจากInputEvent
ปัญหาที่ทราบ
อาจมีความล่าช้าระหว่างการเรียกใช้
unpersist
กับการนำ UUID ออกจากผลลัพธ์ที่getPersistedAnchorUuids
แสดงcreate
จะไม่ตรวจสอบว่าระบบมีทรัพยากรเพียงพอที่จะแสดงแองเคิลใหม่หรือไม่ การสร้าง Anchor มากเกินไปอาจทำให้เกิดข้อขัดข้องขณะนี้ระบบยังไม่รองรับการคง Anchor ที่ก่อนหน้านี้คงอยู่และไม่ได้คงอยู่
ระบบรองรับการใช้งานในโปรแกรมจำลอง แต่ลักษณะการทำงานอาจไม่เสถียรเท่ากับการเรียกใช้ในอุปกรณ์จริง โดยเฉพาะการโทรไปยัง
create
อาจล้มเหลวเนื่องจากข้อผิดพลาดของโค้ดเนทีฟและยุติกิจกรรมทันทีในบางกรณี ระบบอาจส่ง
RuntimeException
อย่างไม่ถูกต้องเมื่อเรียกใช้persist
พร้อมข้อความ "Anchor was not persisted" ในกรณีดังกล่าว ฟังก์ชันจะยังคงทำงานได้สำเร็จและจะมีการคงอยู่ของ Anchor เราขอแนะนำให้คุณใส่การเรียกใช้persist
ไว้ในบล็อกtry
เพื่อเป็นการแก้ปัญหาชั่วคราว