راه اندازی سریع Cloud Anchors برای اندروید

میزبانی و حل کردن Cloud Anchors را در برنامه‌های نمونه cloud_anchor_java و persistent_cloud_anchor_java امتحان کنید.

از کدام برنامه نمونه باید استفاده کنید؟

Cloud Anchors لنگرهایی هستند که در نقطه پایانی Cloud API ARCore میزبانی می شوند. این API کاربران را قادر می سازد تا تجربیات خود را در همان برنامه به اشتراک بگذارند. Anchors Cloud Persistent لنگرهای Cloud هستند که می توانند بیش از 24 ساعت میزبانی شوند.

  • persistent_cloud_anchor_java پیاده سازی یک مورد استفاده از پروژه مشترک است. از مجوز بدون کلید برای مجاز کردن تماس‌های ARCore API استفاده می‌کند. از آنجایی که از یک Backend Firebase برای به اشتراک گذاشتن شناسه های Cloud Anchor بین دستگاه ها استفاده نمی کند، راه اندازی و اجرای آن بسیار آسان تر است.
  • cloud_anchor_java پیاده سازی یک مورد استفاده چند نفره است. از یک کلید API برای مجاز کردن تماس های ARCore API استفاده می کند.

پیش نیازها

الزامات

سخت افزار

نرم افزار

  • Android Studio نسخه 3.0 یا بالاتر با پلتفرم Android SDK نسخه 7.0 (سطح API 24) یا بالاتر
  • ARCore SDK برای اندروید، که می توانید به یکی از دو روش دریافت کنید:
    • آن را از 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 مراحل زیر را دنبال کنید.

لنگرهای ابر پایدار

  1. در Android Studio، روی Open کلیک کنید.

  2. به مکانی که فهرست arcore-android-sdk در دستگاه شما ذخیره شده است بروید. کل پوشه SDK را باز نکنید. در عوض، به samples > persistent_cloud_anchor_java بروید و روی Open کلیک کنید.

لنگرهای ابری

  1. در Android Studio، روی Open کلیک کنید.

  2. به مکانی که فهرست arcore-android-sdk در دستگاه شما ذخیره شده است بروید. کل پوشه SDK را باز نکنید. در عوض، به نمونه‌ها > cloud_anchor_java بروید و روی Open کلیک کنید.

اشتراک‌گذاری Cloud Anchor ID را تنظیم کنید

شناسه‌های Cloud Anchor رشته‌هایی هستند که لنگرهای Cloud میزبان را شناسایی می‌کنند. آنها برای حل یا رندر کردن اشیاء سه بعدی متصل به لنگرهای میزبان استفاده می شوند.

لنگرهای ابر پایدار

اشتراک گذاری Cloud Anchor ID به صورت محلی در برنامه حفظ می شود. در اینجا نیازی به انجام کاری نخواهید داشت.

لنگرهای ابری

برنامه نمونه cloud_anchor_java از پایگاه‌های داده بیدرنگ Firebase برای اشتراک‌گذاری شناسه‌های Cloud Anchor بین دستگاه‌ها استفاده می‌کند. می توانید از یک راه حل متفاوت در برنامه های خود استفاده کنید.

  1. Firebase را به صورت دستی به برنامه خود اضافه کنید. نام بسته cloud_anchor_java com.google.ar.core.examples.java.cloudanchor است. می توانید آن را در main/AndroidManifest.xml پیدا کنید.
  2. فایل google-services.json را که با افزودن Firebase به برنامه خود ایجاد کردید، دانلود کنید.
  3. با Firebase یک پایگاه داده بیدرنگ ایجاد کنید.
  4. در Android Studio، فایل google-services.json را به فهرست app پروژه خود اضافه کنید.

مجوز تماس های ARCore API

برای میزبانی و حل و فصل Cloud Anchors برای برنامه شما، تماس‌های ARCore API را مجاز کنید. مراحل استفاده از ARCore API در Google Cloud را دنبال کنید و از مجوز Keyless برای Anchors Cloud Persistent یا مجوز Key API برای Cloud Anchors استفاده کنید.

برنامه نمونه را بسازید و اجرا کنید

لنگرهای ابر پایدار

برنامه را اجرا کنید

  1. مطمئن شوید که دستگاه شما گزینه های توسعه دهنده و اشکال زدایی USB را فعال کرده باشد.
  2. دستگاه خود را از طریق USB به دستگاه توسعه خود وصل کنید.
  3. در Android Studio، دستگاه خود را به عنوان هدف استقرار انتخاب کنید و روی Run کلیک کنید.

persistent_cloud_anchor_java باید روی دستگاه شما راه‌اندازی شود و ARCore هواپیماهای مقابل دوربین دستگاه را شناسایی کند.

اگر مجوز Google Cloud ناموفق بود، مراحل عیب‌یابی را ببینید.

یک لنگر قرار دهید

  1. هنگامی که برنامه شروع به شناسایی هواپیماها کرد، روی صفحه نمایش خود ضربه بزنید تا یک لنگر روی یکی از هواپیماهای شناسایی شده قرار دهید.
  2. برای میزبانی لنگر قرار داده شده روی دکمه HOST ضربه بزنید. این یک درخواست میزبان به ARCore API ارسال می کند که شامل داده هایی است که موقعیت لنگر را نسبت به ویژگی های بصری نزدیک آن نشان می دهد.

یک درخواست میزبان موفق، یک لنگر در محل قرار داده شده ایجاد می کند و یک شناسه لنگر ابری به آن اختصاص می دهد. اگر درخواست میزبان موفقیت آمیز باشد، برنامه باید یک کد اتاق را نمایش دهد. می توانید از این کد برای دسترسی به لنگرهای میزبان قبلی این اتاق در هر دستگاهی استفاده کنید.

یک لنگر را حل کنید

  1. روی RESOLVE ضربه بزنید و یک کد اتاقی که قبلاً برگردانده شده را وارد کنید تا به لنگرهای میزبانی شده در این اتاق دسترسی داشته باشید. این یک درخواست حل‌وفصل را به ARCore API ارسال می‌کند، که شناسه‌های همه لنگرهایی که در حال حاضر در اتاق میزبانی شده‌اند را برمی‌گرداند. persistent_cloud_anchor_java از این شناسه ها برای ارائه اشیاء سه بعدی متصل به لنگرهای میزبان استفاده می کند.

لنگرهای ابری

برنامه را اجرا کنید

  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 ارسال می کند که شامل داده هایی است که موقعیت لنگر را نسبت به ویژگی های بصری نزدیک آن نشان می دهد.

یک درخواست میزبان موفق، یک لنگر در محل قرار داده شده ایجاد می کند و یک شناسه لنگر ابری به آن اختصاص می دهد. اگر درخواست میزبان موفقیت آمیز باشد، برنامه باید یک کد اتاق را نمایش دهد. می توانید از این کد برای دسترسی به لنگرهای میزبان قبلی این اتاق در هر دستگاهی استفاده کنید.

یک لنگر را حل کنید

  1. روی RESOLVE ضربه بزنید و یک کد اتاقی که قبلاً برگردانده شده را وارد کنید تا به لنگرهای میزبانی شده در این اتاق دسترسی داشته باشید. این یک درخواست حل‌وفصل را به ARCore API ارسال می‌کند، که شناسه‌های همه لنگرهایی که در حال حاضر در اتاق میزبانی شده‌اند را برمی‌گرداند. cloud_anchor_java از این شناسه ها برای ارائه اشیاء سه بعدی متصل به لنگرهای میزبان استفاده می کند.

بعدش چی