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

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

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

雲端錨點是「錨點」,由 ARCore API 雲端端點代管。這個 API 可讓使用者在同一個應用程式中共用體驗。Persistent Cloud Anchor 是可託管超過 24 小時的雲端錨點。

  • persistent_cloud_anchor_java 是協作專案用途的實作。它採用無金鑰授權來授權 ARCore API 呼叫。這項工具不會透過 Firebase 後端在裝置間共用 Cloud Anchor ID,因此可讓你更輕鬆地上手。
  • cloud_anchor_java 是多人遊戲用途的實作。並使用 API 金鑰授權 ARCore API 呼叫。

必備條件

需求條件

硬體

軟體

  • 搭載 Android SDK Platform 7.0 (API 級別 24) 以上版本的 Android Studio 3.0 以上版本
  • ARCore SDK for Android,可透過以下兩種方式取得:
    • 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 中開啟應用程式。

永久雲端錨點

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

  2. 前往儲存在機器上的 arcore-android-sdk 目錄。請勿開啟整個 SDK 資料夾。請改為前往「samples」 >「persistent_cloud_anchor_java」,然後按一下「Open」

雲端錨點

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

  2. 前往儲存在機器上的 arcore-android-sdk 目錄。請勿開啟整個 SDK 資料夾。請改為前往「samples」 >「cloud_anchor_java」,然後按一下「Open」

設定 Cloud Anchor ID 共用功能

Cloud Anchor ID 是可識別代管雲端錨點的字串。這些物件可用於解析或算繪代管錨點的 3D 物件。

永久雲端錨點

Cloud Anchor ID 共用功能會在應用程式中保留。在此情況中,您無須採取任何行動。

雲端錨點

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

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

授權 ARCore API 呼叫

授權對 ARCore API 呼叫,為應用程式託管並解析 Cloud Anchor。請按照「在 Google Cloud 上使用 ARCore API」一節的步驟操作,針對永久 Cloud Anchors 或 API 金鑰授權,使用無金鑰授權

建構並執行範例應用程式

永久雲端錨點

執行應用程式

  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,以傳回目前在聊天室中代管的所有錨點 ID。persistent_cloud_anchor_java 會使用這些 ID,算繪附加至代管錨點的 3D 物件。

雲端錨點

執行應用程式

  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

如果遇到這個錯誤,請確認 google-services.json 中有 firebase_url 屬性。只要確認已建立即時資料庫並下載 google-services.json,即可取得這項屬性的正確值。


放置錨定標記

  1. 應用程式開始偵測飛機後,請輕觸螢幕,將錨點放置在偵測到的平面上。
  2. 輕觸「主機」按鈕即可代管放置的錨點。這會將主機要求傳送至 ARCore API,其中包含資料代表錨點在附近視覺地圖項目的相對位置。

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

解析錨點

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

後續步驟