میزبانی و حل کردن 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 استفاده می کند.
پیش نیازها
- نحوه کار لنگرها و Cloud Anchors را درک کنید.
- ARCore SDK برای اندروید را نصب و پیکربندی کنید .
الزامات
سخت افزار
- دستگاهی با پشتیبانی از ARCore که آخرین نسخه Google Play Services for AR را نصب کرده است
- یک کابل USB برای اتصال دستگاه به دستگاه توسعه شما
نرم افزار
- 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 مراحل زیر را دنبال کنید.
لنگرهای ابر پایدار
در Android Studio، روی Open کلیک کنید.
به مکانی که فهرست arcore-android-sdk در دستگاه شما ذخیره شده است بروید. کل پوشه SDK را باز نکنید. در عوض، به samples > persistent_cloud_anchor_java بروید و روی Open کلیک کنید.
لنگرهای ابری
در Android Studio، روی Open کلیک کنید.
به مکانی که فهرست arcore-android-sdk در دستگاه شما ذخیره شده است بروید. کل پوشه SDK را باز نکنید. در عوض، به نمونهها > cloud_anchor_java بروید و روی Open کلیک کنید.
اشتراکگذاری Cloud Anchor ID را تنظیم کنید
شناسههای Cloud Anchor رشتههایی هستند که لنگرهای Cloud میزبان را شناسایی میکنند. آنها برای حل یا رندر کردن اشیاء سه بعدی متصل به لنگرهای میزبان استفاده می شوند.
لنگرهای ابر پایدار
اشتراک گذاری Cloud Anchor ID به صورت محلی در برنامه حفظ می شود. در اینجا نیازی به انجام کاری نخواهید داشت.
لنگرهای ابری
برنامه نمونه cloud_anchor_java
از پایگاههای داده بیدرنگ Firebase برای اشتراکگذاری شناسههای Cloud Anchor بین دستگاهها استفاده میکند. می توانید از یک راه حل متفاوت در برنامه های خود استفاده کنید.
- Firebase را به صورت دستی به برنامه خود اضافه کنید. نام بسته
cloud_anchor_java
com.google.ar.core.examples.java.cloudanchor
است. می توانید آن را درmain/AndroidManifest.xml
پیدا کنید. - فایل
google-services.json
را که با افزودن Firebase به برنامه خود ایجاد کردید، دانلود کنید. - با Firebase یک پایگاه داده بیدرنگ ایجاد کنید.
- در Android Studio، فایل
google-services.json
را به فهرستapp
پروژه خود اضافه کنید.
مجوز تماس های ARCore API
برای میزبانی و حل و فصل Cloud Anchors برای برنامه شما، تماسهای ARCore API را مجاز کنید. مراحل استفاده از ARCore API در Google Cloud را دنبال کنید و از مجوز Keyless برای Anchors Cloud Persistent یا مجوز Key API برای Cloud Anchors استفاده کنید.
برنامه نمونه را بسازید و اجرا کنید
لنگرهای ابر پایدار
برنامه را اجرا کنید
- مطمئن شوید که دستگاه شما گزینه های توسعه دهنده و اشکال زدایی USB را فعال کرده باشد.
- دستگاه خود را از طریق USB به دستگاه توسعه خود وصل کنید.
- در Android Studio، دستگاه خود را به عنوان هدف استقرار انتخاب کنید و روی Run کلیک کنید.
persistent_cloud_anchor_java
باید روی دستگاه شما راهاندازی شود و ARCore هواپیماهای مقابل دوربین دستگاه را شناسایی کند.
اگر مجوز Google Cloud ناموفق بود، مراحل عیبیابی را ببینید.
یک لنگر قرار دهید
- هنگامی که برنامه شروع به شناسایی هواپیماها کرد، روی صفحه نمایش خود ضربه بزنید تا یک لنگر روی یکی از هواپیماهای شناسایی شده قرار دهید.
- برای میزبانی از لنگر قرار داده شده، روی دکمه HOST ضربه بزنید. این یک درخواست میزبان به ARCore API ارسال می کند که شامل داده هایی است که موقعیت لنگر را نسبت به ویژگی های بصری نزدیک آن نشان می دهد.
یک درخواست میزبان موفق، یک لنگر در محل قرار داده شده ایجاد می کند و یک شناسه لنگر ابری به آن اختصاص می دهد. اگر درخواست میزبان موفقیت آمیز باشد، برنامه باید یک کد اتاق را نمایش دهد. می توانید از این کد برای دسترسی به لنگرهای میزبان قبلی این اتاق در هر دستگاهی استفاده کنید.
یک لنگر را حل کنید
- روی RESOLVE ضربه بزنید و یک کد اتاقی که قبلاً برگردانده شده را وارد کنید تا به لنگرهای میزبانی شده در این اتاق دسترسی داشته باشید. این یک درخواست حلوفصل را به ARCore API ارسال میکند، که شناسههای همه لنگرهایی که در حال حاضر در اتاق میزبانی شدهاند را برمیگرداند.
persistent_cloud_anchor_java
از این شناسه ها برای ارائه اشیاء سه بعدی متصل به لنگرهای میزبان استفاده می کند.
لنگرهای ابری
برنامه را اجرا کنید
- مطمئن شوید که دستگاه شما گزینه های توسعه دهنده و اشکال زدایی USB را فعال کرده باشد.
- دستگاه خود را از طریق USB به دستگاه توسعه خود وصل کنید.
- در 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
می توانید مقدار صحیح این ویژگی را بدست آورید.
یک لنگر قرار دهید
- هنگامی که برنامه شروع به شناسایی هواپیماها کرد، روی صفحه نمایش خود ضربه بزنید تا یک لنگر روی یکی از هواپیماهای شناسایی شده قرار دهید.
- برای میزبانی از لنگر قرار داده شده، روی دکمه HOST ضربه بزنید. این یک درخواست میزبان به ARCore API ارسال می کند که شامل داده هایی است که موقعیت لنگر را نسبت به ویژگی های بصری نزدیک آن نشان می دهد.
یک درخواست میزبان موفق، یک لنگر در محل قرار داده شده ایجاد می کند و یک شناسه لنگر ابری به آن اختصاص می دهد. اگر درخواست میزبان موفقیت آمیز باشد، برنامه باید یک کد اتاق را نمایش دهد. می توانید از این کد برای دسترسی به لنگرهای میزبان قبلی این اتاق در هر دستگاهی استفاده کنید.
یک لنگر را حل کنید
- روی RESOLVE ضربه بزنید و یک کد اتاقی که قبلاً برگردانده شده را وارد کنید تا به لنگرهای میزبانی شده در این اتاق دسترسی داشته باشید. این یک درخواست حلوفصل را به ARCore API ارسال میکند، که شناسههای همه لنگرهایی که در حال حاضر در اتاق میزبانی شدهاند را برمیگرداند.
cloud_anchor_java
از این شناسه ها برای ارائه اشیاء سه بعدی متصل به لنگرهای میزبان استفاده می کند.
بعدش چی
- یک برنامه Cloud Anchors با ARCore Cloud Anchors با کد لبه Cloud Anchors دائمی ایجاد کنید.
- با راهنمای برنامهنویس Cloud Anchors، یاد بگیرید که چگونه Cloud Anchors را در برنامه خود بگنجانید.
- Cloud Anchors را خارج از برنامه ARCore خود با استفاده از Cloud Anchors Management API مدیریت کنید.