Android 適用的 Cloud Anchors 快速入門導覽課程

嘗試在 cloud_anchor_javapersistent_cloud_anchor_java 範例應用程式中託管及解析 Cloud Anchors

您應該使用哪一個範例應用程式?

Cloud Anchor 是錨點,託管於 ARCore API 雲端端點。這個 API 可讓使用者在相同的應用程式中分享體驗。「永久 Cloud Anchors」是可託管超過 24 小時的 Cloud 錨點。

  • persistent_cloud_anchor_java 是協作專案用途的實作。它使用無金鑰授權來授權 ARCore API 呼叫。由於這個 API 不使用 Firebase 後端在裝置之間共用 Cloud Anchor ID,因此設定和執行會更加簡單。
  • cloud_anchor_java 是多人遊戲用途的實作。它會使用 API 金鑰授權 ARCore API 呼叫。

必要條件

需求條件

硬體

軟體

  • 搭載 Android SDK Platform 7.0 (API 級別 24) 以上版本的 Android Studio 3.0 以上版本
  • 適用於 Android 的 ARCore SDK 有兩種方法:
    • GitHub 下載並解壓縮至電腦
    • 使用下列指令複製存放區:
      git clone https://github.com/google-ar/arcore-android-sdk.git

在 Android Studio 中開啟範例應用程式

ARCore SDK 提供 cloud_anchor_javapersistent_cloud_anchor_java 範例應用程式,以示範 Cloud Anchors 功能。請按照下列步驟在 Android Studio 中開啟應用程式。

永久 Cloud 錨點

  1. 在 Android Studio 中按一下「Open」

  2. 前往您電腦上儲存 arcore-android-sdk 目錄的位置。請勿開啟整個 SDK 資料夾。請改為前往範例 >persistent_cloud_anchor_java,然後點選「Open」

Cloud 錨點

  1. 在 Android Studio 中按一下「Open」

  2. 前往您電腦上儲存 arcore-android-sdk 目錄的位置。請勿開啟整個 SDK 資料夾。請改為前往範例 >cloud_anchor_java,然後按一下「Open」cloud_anchor_java

設定 Cloud Anchor ID 共用功能

「Cloud Anchor ID」是識別代管 Cloud Anchor 的字串。它們可用於解析或轉譯附加至代管錨定廣告的 3D 物件。

永久 Cloud 錨點

Cloud Anchor ID 共用會保留在本機應用程式中。你不必在這裡採取任何行動。

Cloud 錨點

cloud_anchor_java 範例應用程式會使用 Firebase 的即時資料庫,在裝置之間共用 Cloud Anchor ID。您可以在自己的應用程式中使用其他解決方案。

  1. 在應用程式中手動新增 Firebase。cloud_anchor_java 套件名稱為 com.google.ar.core.examples.java.cloudanchor。你可以在 main/AndroidManifest.xml 中找到這項資訊。
  2. 下載您在應用程式中加入 Firebase 時產生的 google-services.json 檔案。
  3. 透過 Firebase 建立即時資料庫。
  4. 在 Android Studio 中,將 google-services.json 檔案新增至專案的 app 目錄。

授權 ARCore API 呼叫

授權向 ARCore API 發出的呼叫託管及解析 Cloud Anchors 應用程式。按照「在 Google 上使用 ARCore API」步驟 並使用 less Keyless 服務 授權永久 Cloud Anchors 或 API 金鑰授權: Cloud Anchors。

建構並執行範例應用程式

永久 Cloud 錨點

執行應用程式

  1. 確認裝置已啟用開發人員選項和 USB 偵錯
  2. 透過 USB 將裝置連接至開發機器。
  3. 在 Android Studio 中,選取裝置做為部署目標,然後按一下「Run」

persistent_cloud_anchor_java」應會在裝置上啟動,並提示 ARCore 偵測裝置相機前方的飛機。

如果 Google Cloud 授權失敗,請參閱疑難排解步驟

放置錨點

  1. 應用程式開始偵測飛機後,輕觸螢幕,在偵測到的平面上放置錨點。
  2. 輕觸「主持人」按鈕,代管放置錨點。這會傳送主機要求至 ARCore API,其中包括代表錨點相對於其附近的視覺功能的資料。

主機要求成功後,會在放置的位置建立錨點,並為其指派 Cloud Anchor ID。如果主機要求成功,應用程式應顯示會議室代碼。使用這個程式碼,即可在任何裝置上存取這個房間先前代管的錨定標記。

解析錨定標記

  1. 輕觸「解決」並輸入先前傳回的會議室代碼,即可存取這個房間代管的錨點。這會傳送解析要求至 ARCore API,該 API 會傳回目前在遊戲室中代管所有錨點的 ID。persistent_cloud_anchor_java 會使用這些 ID 算繪附加至代管錨點的 3D 物件。

Cloud 錨點

執行應用程式

  1. 確認裝置已啟用開發人員選項和 USB 偵錯
  2. 透過 USB 將裝置連接至開發機器。
  3. 在 Android Studio 中,選取裝置做為部署目標,然後按一下「Run」

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 中。只要確保已建立即時資料庫並下載 google-services.json,即可取得這個屬性的正確值。


放置錨點

  1. 應用程式開始偵測飛機後,輕觸螢幕,在偵測到的平面上放置錨點。
  2. 輕觸「主持人」按鈕,代管放置錨點。這會傳送主機要求至 ARCore API,其中包括代表錨點相對於其附近的視覺功能的資料。

主機要求成功後,會在放置的位置建立錨點,並為其指派 Cloud Anchors ID。如果主機要求成功,應用程式應顯示會議室代碼。使用這個程式碼,即可在任何裝置上存取這個房間先前代管的錨定標記。

解析錨定標記

  1. 輕觸「解決」並輸入先前傳回的會議室代碼,即可存取這個房間代管的錨點。這會傳送解析要求至 ARCore API,該 API 會傳回目前在遊戲室中代管所有錨點的 ID。cloud_anchor_java 會使用這些 ID 算繪附加至代管錨點的 3D 物件。

後續步驟