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

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

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

Cloud Anchors 是代管於 ARCore API 雲端端點的錨點。使用者可透過這項 API 在同一個應用程式中分享體驗。永久 Cloud Anchors 是指可代管超過 24 小時的 Cloud Anchors。

  • persistent_cloud_anchor_java 是協作專案用途的實作項目。這項服務會使用無金鑰授權,授權 ARCore API 呼叫。由於這項功能不會使用 Firebase 後端在裝置間共用 Cloud Anchor ID,因此更容易上手。
  • cloud_anchor_java 是多玩家使用案例的實作方式。並使用 API 金鑰授權 ARCore API 呼叫。

必要條件

需求條件

硬體

軟體

  • Android Studio 3.0 以上版本,以及 Android SDK Platform 7.0 (API 級別 24) 以上版本
  • 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 Anchors

  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 分享功能

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

永久 Cloud Anchors

雲端錨點 ID 共用功能會在本機應用程式中維護,您無須執行任何操作。

雲端錨點

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 Cloud 上使用 ARCore API」一文中的步驟操作,並針對 Persistent Cloud Anchors 使用免金鑰授權,或針對 Cloud Anchors 使用 API 金鑰授權

建構並執行範例應用程式

永久 Cloud Anchors

執行應用程式

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

persistent_cloud_anchor_java 應會在裝置上啟動,並提示 ARCore 偵測裝置攝影機前方的平面。

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

放置錨點

  1. 應用程式開始偵測飛機後,輕觸螢幕即可在其中一架偵測到的飛機上放置錨點。
  2. 輕觸「HOST」按鈕,即可代管放置的錨點。這會將主機要求傳送至 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

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


放置錨點

  1. 應用程式開始偵測飛機後,輕觸螢幕即可在其中一架偵測到的飛機上放置錨點。
  2. 輕觸「HOST」按鈕,即可代管放置的錨點。這會將主機要求傳送至 ARCore API,其中包含代表錨點位置的資料,該位置與附近的視覺特徵相關。

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

解析錨點

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

後續步驟