ลองโฮสต์และแก้ไข Cloud Anchor ในแอปตัวอย่าง cloud_anchor_java และ persistent_cloud_anchor_java
คุณควรใช้แอปตัวอย่างใด
Cloud Anchors คือAnchor ที่โฮสต์อยู่ในปลายทางระบบคลาวด์ของ ARCore API API นี้ช่วยให้ผู้ใช้แชร์ประสบการณ์ในแอปเดียวกันได้ Cloud Anchors แบบถาวรคือ Cloud Anchors ที่โฮสต์ได้นานกว่า 24 ชั่วโมง
persistent_cloud_anchor_javaเป็นการใช้งานกรณีการใช้งานโปรเจ็กต์การทำงานร่วมกัน โดยใช้การให้สิทธิ์แบบไม่มีคีย์เพื่อให้สิทธิ์การเรียก ARCore API เนื่องจากไม่ได้ใช้แบ็กเอนด์ Firebase เพื่อแชร์รหัส Cloud Anchor ระหว่างอุปกรณ์ จึงเริ่มต้นใช้งานได้ง่ายกว่ามากcloud_anchor_javaเป็นการใช้งานกรณีการใช้งานแบบผู้เล่นหลายคน โดยจะใช้คีย์ API เพื่อให้สิทธิ์การเรียก ARCore API
ข้อกำหนดเบื้องต้น
- ทำความเข้าใจวิธีการทำงานของสมอและสมอในระบบคลาวด์
- ติดตั้งและกำหนดค่า ARCore SDK สำหรับ Android
ข้อกำหนด
ฮาร์ดแวร์
- อุปกรณ์ที่รองรับ ARCore ซึ่งติดตั้ง บริการ Google Play สำหรับ AR เวอร์ชันล่าสุด
- สาย USB เพื่อเชื่อมต่ออุปกรณ์กับคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์
ซอฟต์แวร์
- Android Studio เวอร์ชัน 3.0 ขึ้นไปที่มีแพลตฟอร์ม Android SDK เวอร์ชัน 7.0 (ระดับ API 24) ขึ้นไป
- ARCore SDK สำหรับ Android ซึ่งคุณรับได้ 2 วิธีดังนี้
- ดาวน์โหลดจาก GitHub แล้วแตกไฟล์ในเครื่อง
- โคลนที่เก็บด้วยคำสั่งต่อไปนี้
git clone https://github.com/google-ar/arcore-android-sdk.git
เปิดแอปตัวอย่างใน Android Studio
ARCore SDK มีแอปตัวอย่าง cloud_anchor_java และ persistent_cloud_anchor_java เพื่อสาธิตฟังก์ชันการทำงานของ Cloud Anchor ทำตามขั้นตอนต่อไปนี้เพื่อเปิดแอปใน Android Studio
Cloud Anchors แบบถาวร
ใน Android Studio ให้คลิกเปิด
ไปที่ตำแหน่งที่จัดเก็บไดเรกทอรี arcore-android-sdk ในเครื่อง อย่าเปิดโฟลเดอร์ SDK ทั้งหมด ให้ไปที่ samples > persistent_cloud_anchor_java แล้วคลิกเปิดแทน
Cloud Anchor
ใน Android Studio ให้คลิกเปิด
ไปที่ตำแหน่งที่จัดเก็บไดเรกทอรี arcore-android-sdk ในเครื่อง อย่าเปิดโฟลเดอร์ SDK ทั้งหมด แต่ให้ไปที่ samples > cloud_anchor_java แล้วคลิกเปิด
ตั้งค่าการแชร์รหัส Cloud Anchor
รหัส Cloud Anchor คือสตริงที่ระบุ Cloud Anchor ที่โฮสต์ โดยจะใช้เพื่อแก้ไขหรือแสดงผลออบเจ็กต์ 3 มิติที่แนบกับ Anchor ที่โฮสต์
Cloud Anchors แบบถาวร
ระบบจะจัดการการแชร์รหัส Cloud Anchor ไว้ในแอปภายในเครื่อง คุณจึงไม่ต้องดำเนินการใดๆ ที่นี่
Cloud Anchor
แอปตัวอย่าง cloud_anchor_java ใช้ฐานข้อมูลเรียลไทม์ของ Firebase เพื่อแชร์รหัส Cloud Anchor ระหว่างอุปกรณ์ คุณสามารถใช้โซลูชันอื่นในแอปของคุณเองได้
- เพิ่ม Firebase ลงในแอปด้วยตนเอง
cloud_anchor_javaชื่อแพ็กเกจคือcom.google.ar.core.examples.java.cloudanchorคุณดูได้ในmain/AndroidManifest.xml - ดาวน์โหลดไฟล์
google-services.jsonที่คุณสร้างขึ้นเมื่อเพิ่ม Firebase ลงในแอป - สร้างฐานข้อมูล Realtime ด้วย Firebase
- ใน Android Studio ให้เพิ่มไฟล์
google-services.jsonลงในไดเรกทอรีappของโปรเจ็กต์
ให้สิทธิ์การเรียก ARCore API
ให้สิทธิ์การเรียกใช้ ARCore API เพื่อโฮสต์และแก้ไข Cloud Anchor สำหรับแอปของคุณ ทำตามขั้นตอนในใช้ ARCore API ใน Google Cloud และใช้การให้สิทธิ์แบบไม่ต้องใช้คีย์สำหรับ Cloud Anchor แบบถาวรหรือการให้สิทธิ์คีย์ API สำหรับ Cloud Anchor
สร้างและเรียกใช้แอปตัวอย่าง
Cloud Anchors แบบถาวร
เรียกใช้แอป
- ตรวจสอบว่าอุปกรณ์ได้เปิดใช้ตัวเลือกสำหรับนักพัฒนาแอปและการแก้ไขข้อบกพร่อง USB
- เชื่อมต่ออุปกรณ์ผ่าน USB กับคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์
- ใน Android Studio ให้เลือกอุปกรณ์เป็นเป้าหมายการติดตั้งใช้งาน แล้วคลิกเรียกใช้
persistent_cloud_anchor_java ควรเปิดขึ้นในอุปกรณ์ของคุณ ซึ่งจะแจ้งให้ ARCore ตรวจจับระนาบที่อยู่ด้านหน้ากล้องของอุปกรณ์
หากการให้สิทธิ์ Google Cloud ล้มเหลว โปรดดูขั้นตอนการแก้ปัญหา
วางจุดยึด
- เมื่อแอปเริ่มตรวจจับเครื่องบิน ให้แตะหน้าจอเพื่อวางจุดยึดบนเครื่องบินที่ตรวจพบ
- แตะปุ่มโฮสต์เพื่อโฮสต์ Anchor ที่วาง ซึ่งจะส่งคำขอโฮสต์ไปยัง ARCore API ซึ่งมีข้อมูลที่แสดงตำแหน่งของ Anchor ที่สัมพันธ์กับฟีเจอร์ภาพที่อยู่ใกล้เคียง
คำขอโฮสต์ที่สำเร็จจะสร้าง Anchor ที่ตำแหน่งที่วางและกำหนดรหัส Cloud Anchor ให้ หากคำขอโฮสต์สำเร็จ แอปควรแสดงรหัสห้อง คุณใช้รหัสนี้เพื่อเข้าถึงสมอที่โฮสต์ไว้ก่อนหน้านี้สำหรับห้องนี้ในอุปกรณ์ใดก็ได้
แก้ไข Anchor
- แตะแก้ไข แล้วป้อนรหัสห้องที่ได้รับก่อนหน้านี้เพื่อเข้าถึง Anchor ที่โฮสต์ในห้องนี้ ซึ่งจะส่งคำขอแก้ไขไปยัง ARCore API ซึ่งจะแสดงรหัสของ Anchor ทั้งหมดที่โฮสต์อยู่ในห้องในขณะนี้
persistent_cloud_anchor_javaจะใช้รหัสเหล่านี้เพื่อแสดงออบเจ็กต์ 3 มิติที่แนบกับ Anchor ที่โฮสต์
Cloud Anchor
เรียกใช้แอป
- ตรวจสอบว่าอุปกรณ์ได้เปิดใช้ตัวเลือกสำหรับนักพัฒนาแอปและการแก้ไขข้อบกพร่อง USB
- เชื่อมต่ออุปกรณ์ผ่าน USB กับคอมพิวเตอร์สำหรับการพัฒนาซอฟต์แวร์
- ใน Android Studio ให้เลือกอุปกรณ์เป็นเป้าหมายการติดตั้งใช้งาน แล้วคลิกเรียกใช้
cloud_anchor_java ควรเปิดขึ้นในอุปกรณ์ของคุณ ซึ่งจะแจ้งให้ ARCore ตรวจจับระนาบที่อยู่ด้านหน้ากล้องของอุปกรณ์
ข้อผิดพลาด: com.google.firebase.database.DatabaseException: Failed to get FirebaseDatabase instance: Specify DatabaseURL within FirebaseApp or from your getInstance
หากพบข้อผิดพลาดนี้ โปรดตรวจสอบว่ามีพร็อพเพอร์ตี้ firebase_url ใน google-services.json คุณจะได้รับค่าที่ถูกต้องสำหรับพร็อพเพอร์ตี้นี้โดยตรวจสอบว่าได้สร้าง Realtime Database แล้วและดาวน์โหลด google-services.json
วางจุดยึด
- เมื่อแอปเริ่มตรวจจับเครื่องบิน ให้แตะหน้าจอเพื่อวางจุดยึดบนเครื่องบินที่ตรวจพบ
- แตะปุ่มโฮสต์เพื่อโฮสต์ Anchor ที่วาง ซึ่งจะส่งคำขอโฮสต์ไปยัง ARCore API ซึ่งมีข้อมูลที่แสดงตำแหน่งของ Anchor ที่สัมพันธ์กับฟีเจอร์ภาพที่อยู่ใกล้เคียง
คำขอโฮสต์ที่สำเร็จจะสร้าง Anchor ที่ตำแหน่งที่วางและกำหนดรหัส Cloud Anchor ให้ หากคำขอโฮสต์สำเร็จ แอปควรแสดงรหัสห้อง คุณใช้รหัสนี้เพื่อเข้าถึงสมอที่โฮสต์ไว้ก่อนหน้านี้สำหรับห้องนี้ในอุปกรณ์ใดก็ได้
แก้ไข Anchor
- แตะแก้ไข แล้วป้อนรหัสห้องที่ได้รับก่อนหน้านี้เพื่อเข้าถึง Anchor ที่โฮสต์ในห้องนี้ ซึ่งจะส่งคำขอแก้ไขไปยัง ARCore API ซึ่งจะแสดงรหัสของ Anchor ทั้งหมดที่โฮสต์อยู่ในห้องในขณะนี้
cloud_anchor_javaจะใช้รหัสเหล่านี้เพื่อแสดงออบเจ็กต์ 3 มิติที่แนบกับ Anchor ที่โฮสต์
สิ่งที่จะเกิดขึ้นหลังจากนี้
- สร้างแอป Cloud Anchors ด้วย ARCore Cloud Anchors พร้อม Codelab Cloud Anchors แบบถาวร
- ดูวิธีรวม Cloud Anchor ไว้ในแอปด้วยคู่มือนักพัฒนาซอฟต์แวร์ Cloud Anchor
- จัดการ Cloud Anchors นอกแอป ARCore โดยใช้ Cloud Anchors Management API