ลองโฮสต์และแก้ไข Cloud Anchor ในแอปตัวอย่าง cloud_anchor_java
และ persistent_cloud_anchor_java
คุณควรใช้แอปตัวอย่างใด
Cloud Anchor เป็นAnchor ที่โฮสต์ในปลายทางระบบคลาวด์ ARCore API API นี้ช่วยให้ผู้ใช้แชร์ประสบการณ์ในแอปเดียวกันได้ Cloud Anchor แบบถาวรคือ Cloud Anchor ที่สามารถโฮสต์ได้นานกว่า 24 ชั่วโมง
persistent_cloud_anchor_java
เป็นการปรับใช้กรณีการใช้งานโปรเจ็กต์แบบทำงานร่วมกัน ใช้การให้สิทธิ์แบบไม่ใช้คีย์เพื่อให้สิทธิ์การเรียก ARCore API เนื่องจากไม่ได้ใช้แบ็กเอนด์ของ Firebase เพื่อแชร์รหัส Cloud Anchor ระหว่างอุปกรณ์ จึงสามารถเริ่มต้นใช้งานได้ง่ายขึ้นcloud_anchor_java
เป็นการใช้งานกรณีการใช้งานแบบหลายผู้เล่น และใช้คีย์ API เพื่อให้สิทธิ์การเรียก ARCore API
ข้อกำหนดเบื้องต้น
- ทำความเข้าใจวิธีการทำงานของแท็ก Anchor และ Cloud Anchor
- ติดตั้งและกำหนดค่า 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 Anchor แบบถาวร
ใน Android Studio ให้คลิกเปิด
ไปยังตำแหน่งที่เก็บไดเรกทอรี arcore-android-sdk ในเครื่อง อย่าเปิดโฟลเดอร์ SDK ทั้งโฟลเดอร์ ให้ไปที่ตัวอย่าง > แทน persistent_cloud_anchor_java แล้วคลิกเปิด
ตัวยึดระบบคลาวด์
ใน Android Studio ให้คลิกเปิด
ไปยังตำแหน่งที่เก็บไดเรกทอรี arcore-android-sdk ในเครื่อง อย่าเปิดโฟลเดอร์ SDK ทั้งโฟลเดอร์ ให้ไปที่ตัวอย่าง > แทน cloud_anchor_java แล้วคลิกเปิด
ตั้งค่าการแชร์รหัส Cloud Anchor
รหัส Cloud Anchor คือสตริงที่ระบุ Cloud Anchor ที่โฮสต์ไว้ โดยจะใช้เพื่อแก้ไขหรือแสดงผลวัตถุ 3 มิติที่ติดอยู่กับ Anchor ที่โฮสต์ไว้
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 Database ด้วย Firebase
- ใน Android Studio ให้เพิ่มไฟล์
google-services.json
ในไดเรกทอรีapp
ของโปรเจ็กต์
ให้สิทธิ์การเรียก ARCore API
ให้สิทธิ์การเรียกไปยัง ARCore API เพื่อโฮสต์และแก้ปัญหา Cloud Anchor สำหรับ แอป ทำตามขั้นตอนสำหรับใช้ ARCore API ใน Google Cloud และใช้ Keyless การให้สิทธิ์สำหรับ Persistent Cloud Anchor หรือการให้สิทธิ์คีย์ API สำหรับ Cloud Anchor
สร้างและเรียกใช้แอปตัวอย่าง
Cloud Anchor แบบถาวร
เรียกใช้แอป
- ตรวจสอบว่าอุปกรณ์ได้เปิดใช้ตัวเลือกสำหรับนักพัฒนาแอปและการแก้ไขข้อบกพร่อง USB แล้ว
- เชื่อมต่ออุปกรณ์ผ่าน USB กับเครื่องพัฒนา
- ใน Android Studio ให้เลือกอุปกรณ์ของคุณเป็นเป้าหมายการทำให้ใช้งานได้ แล้วคลิกเรียกใช้
persistent_cloud_anchor_java
ควรเปิดขึ้นมาในอุปกรณ์เพื่อเตือนให้ ARCore ตรวจหาเครื่องบินที่อยู่หน้ากล้องของอุปกรณ์
หากให้สิทธิ์ Google Cloud ไม่สำเร็จ โปรดดูขั้นตอนการแก้ปัญหา
วาง Anchor
- เมื่อแอปเริ่มตรวจพบระนาบ ให้แตะหน้าจอเพื่อวางจุดยึดบนระนาบที่ตรวจพบ
- แตะปุ่มโฮสต์เพื่อโฮสต์ Anchor ที่วางอยู่ การดำเนินการนี้จะส่งคำขอโฮสต์ไปยัง ARCore API ที่มีข้อมูลที่แสดงตำแหน่งของ Anchor ที่เกี่ยวข้องกับฟีเจอร์ภาพที่อยู่ใกล้กับแท็ก
คำขอของโฮสต์ที่ดำเนินการสำเร็จจะสร้าง Anchor ที่ตำแหน่งที่วางและกำหนดรหัส Cloud Anchor ให้ หากคำขอของโฮสต์สำเร็จ แอปควรแสดงรหัสห้อง คุณสามารถใช้รหัสนี้เพื่อเข้าถึง Anchor ที่โฮสต์ไว้ก่อนหน้านี้สําหรับห้องนี้ในอุปกรณ์ใดก็ได้
แก้ไขแท็ก Anchor
- แตะแก้ปัญหา แล้วป้อนรหัสห้องที่ส่งกลับมาก่อนหน้านี้เพื่อเข้าถึง Anchor ที่โฮสต์ในห้องนี้ การดำเนินการนี้จะส่งคำขอแก้ไขไปยัง ARCore API ซึ่งจะส่งกลับรหัส Anchor ทั้งหมดที่โฮสต์ในห้องอยู่ในปัจจุบัน
persistent_cloud_anchor_java
จะใช้รหัสเหล่านี้เพื่อแสดงออบเจ็กต์ 3 มิติที่แนบอยู่กับ 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
- เมื่อแอปเริ่มตรวจพบระนาบ ให้แตะหน้าจอเพื่อวางจุดยึดบนระนาบที่ตรวจพบ
- แตะปุ่มโฮสต์เพื่อโฮสต์ Anchor ที่วางไว้ การดำเนินการนี้จะส่งคำขอโฮสต์ไปยัง ARCore API ที่มีข้อมูลที่แสดงตำแหน่งของ Anchor ที่เกี่ยวข้องกับฟีเจอร์ภาพที่อยู่ใกล้กับแท็ก
คำขอของโฮสต์ที่ดำเนินการสำเร็จจะสร้าง Anchor ที่ตำแหน่งที่วางและกำหนดรหัส Cloud Anchor ให้ หากคำขอของโฮสต์สำเร็จ แอปควรแสดงรหัสห้อง คุณสามารถใช้รหัสนี้เพื่อเข้าถึง Anchor ที่โฮสต์ไว้ก่อนหน้านี้สําหรับห้องนี้ในอุปกรณ์ใดก็ได้
แก้ไขแท็ก Anchor
- แตะแก้ปัญหา แล้วป้อนรหัสห้องที่ส่งกลับมาก่อนหน้านี้เพื่อเข้าถึง Anchor ที่โฮสต์ในห้องนี้ การดำเนินการนี้จะส่งคำขอแก้ไขไปยัง ARCore API ซึ่งจะส่งกลับรหัส Anchor ทั้งหมดที่โฮสต์ในห้องอยู่ในปัจจุบัน
cloud_anchor_java
จะใช้รหัสเหล่านี้เพื่อแสดงออบเจ็กต์ 3 มิติที่แนบอยู่กับ Anchor ที่โฮสต์ไว้
สิ่งที่จะเกิดขึ้นหลังจากนี้
- สร้างแอป Cloud Anchor ด้วย ARCore Cloud Anchor with Persistent Cloud Anchors Codelab
- ดูวิธีรวม Cloud Anchor ในแอปจากคู่มือนักพัฒนาซอฟต์แวร์ Cloud Anchor
- จัดการ Cloud Anchor นอกแอป ARCore โดยใช้ Cloud Anchors Management API