میزبانی و حل مشکلات Cloud Anchors را در برنامههای نمونه cloud_anchor_java و persistent_cloud_anchor_java امتحان کنید.
از کدام برنامه نمونه باید استفاده کنید؟
انکرهای ابری، انکرهایی هستند که در نقطه پایانی ابری ARCore API میزبانی میشوند. این API به کاربران امکان میدهد تجربیات خود را در همان برنامه به اشتراک بگذارند. انکرهای ابری پایدار، انکرهای ابری هستند که میتوانند بیش از 24 ساعت میزبانی شوند.
-
persistent_cloud_anchor_javaیک پیادهسازی از یک پروژه مشارکتی است. این پروژه از احراز هویت بدون کلید برای احراز هویت فراخوانیهای API ARCore استفاده میکند. از آنجا که از یک backend فایربیس برای اشتراکگذاری شناسههای Cloud Anchor بین دستگاهها استفاده نمیکند، راهاندازی و اجرای آن بسیار آسانتر است. -
cloud_anchor_javaیک پیادهسازی از یک مورد استفاده چند نفره است. این پروژه از یک کلید API برای تأیید فراخوانیهای API ARCore استفاده میکند.
پیشنیازها
- درک کنید که لنگرها و لنگرهای ابری چگونه کار میکنند.
- ARCore SDK را برای اندروید نصب و پیکربندی کنید .
الزامات
سختافزار
- یک دستگاه پشتیبانیشده با ARCore که آخرین نسخه سرویسهای گوگل پلی برای واقعیت افزوده روی آن نصب شده باشد
- یک کابل USB برای اتصال دستگاه به دستگاه توسعه شما
نرمافزار
- اندروید استودیو نسخه ۳.۰ یا بالاتر به همراه پلتفرم SDK اندروید نسخه ۷.۰ (سطح API ۲۴) یا بالاتر
- کیت توسعه نرمافزار ARCore برای اندروید، که میتوانید آن را از یکی از دو روش زیر دریافت کنید:
- آن را از گیتهاب دانلود کنید و روی دستگاه خود استخراج کنید
- با دستور زیر مخزن را کلون کنید:
git clone https://github.com/google-ar/arcore-android-sdk.git
برنامه نمونه را در اندروید استودیو باز کنید
کیت توسعه نرمافزار ARCore، برنامههای نمونه cloud_anchor_java و persistent_cloud_anchor_java را برای نمایش عملکرد Cloud Anchors ارائه میدهد. برای باز کردن برنامهها در اندروید استودیو، این مراحل را دنبال کنید.
لنگرهای ابری پایدار
در اندروید استودیو، روی «باز کردن» کلیک کنید.
به محلی که دایرکتوری arcore-android-sdk در دستگاه شما ذخیره شده است بروید. کل پوشه SDK را باز نکنید. در عوض، به samples > persistent_cloud_anchor_java بروید و روی Open کلیک کنید.
لنگرهای ابری
در اندروید استودیو، روی «باز کردن» کلیک کنید.
به محلی که دایرکتوری arcore-android-sdk در دستگاه شما ذخیره شده است بروید. کل پوشه SDK را باز نکنید. در عوض، به samples > cloud_anchor_java بروید و روی Open کلیک کنید.
اشتراکگذاری شناسه Cloud Anchor را راهاندازی کنید
شناسههای لنگر ابری رشتههایی هستند که لنگرهای ابری میزبان را شناسایی میکنند. آنها برای حل یا رندر اشیاء سهبعدی متصل به لنگرهای میزبان استفاده میشوند.
لنگرهای ابری پایدار
اشتراکگذاری شناسه Cloud Anchor به صورت محلی در برنامه انجام میشود. نیازی نیست اینجا کاری انجام دهید.
لنگرهای ابری
برنامه نمونه 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
- در اندروید استودیو، فایل
google-services.jsonرا به دایرکتوریappپروژه خود اضافه کنید.
مجاز کردن فراخوانیهای API ARCore
فراخوانیهای ARCore API را برای میزبانی و حل Cloud Anchors برای برنامه خود مجاز کنید. مراحل زیر را برای استفاده از ARCore API در Google Cloud دنبال کنید و از احراز هویت بدون کلید برای Persistent Cloud Anchors یا احراز هویت با کلید API برای Cloud Anchors استفاده کنید.
ساخت و اجرای برنامه نمونه
لنگرهای ابری پایدار
برنامه را اجرا کنید
- مطمئن شوید که گزینههای توسعهدهنده و اشکالزدایی USB در دستگاه شما فعال است.
- دستگاه خود را از طریق USB به دستگاه توسعه خود وصل کنید.
- در اندروید استودیو، دستگاه خود را به عنوان هدف استقرار انتخاب کنید و روی Run کلیک کنید.
persistent_cloud_anchor_java باید روی دستگاه شما اجرا شود و ARCore را وادار کند تا صفحات جلوی دوربین دستگاه را شناسایی کند.
اگر مجوز Google Cloud ناموفق بود، به مراحل عیبیابی مراجعه کنید.
لنگر بگذارید
- به محض اینکه برنامه شروع به شناسایی هواپیماها کرد، روی صفحه نمایش خود ضربه بزنید تا یک لنگر روی یکی از هواپیماهای شناسایی شده قرار دهید.
- برای میزبانی لنگر قرار داده شده، روی دکمه HOST ضربه بزنید. این کار یک درخواست میزبانی به ARCore API ارسال میکند که شامل دادههایی است که موقعیت لنگر را نسبت به ویژگیهای بصری نزدیک آن نشان میدهد.
یک درخواست میزبان موفق، یک لنگر (anchor) در محل قرار داده شده ایجاد میکند و یک شناسه لنگر ابری (Cloud Anchor ID) به آن اختصاص میدهد. اگر درخواست میزبان موفقیتآمیز باشد، برنامه باید یک کد اتاق را نمایش دهد. میتوانید از این کد برای دسترسی به لنگرهای میزبانی شده قبلی برای این اتاق در هر دستگاهی استفاده کنید.
یک لنگر را حل کنید
- برای دسترسی به لنگرهای میزبانیشده در این اتاق، روی RESOLVE ضربه بزنید و کد اتاقی که قبلاً برگردانده شده را وارد کنید. این کار یک درخواست حل اختلاف به API ARCore ارسال میکند که شناسههای تمام لنگرهای میزبانیشده در اتاق را برمیگرداند.
persistent_cloud_anchor_javaاز این شناسهها برای رندر کردن اشیاء سهبعدی متصل به لنگرهای میزبانیشده استفاده خواهد کرد.
لنگرهای ابری
برنامه را اجرا کنید
- مطمئن شوید که گزینههای توسعهدهنده و اشکالزدایی USB در دستگاه شما فعال است.
- دستگاه خود را از طریق USB به دستگاه توسعه خود وصل کنید.
- در اندروید استودیو، دستگاه خود را به عنوان هدف استقرار انتخاب کنید و روی 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 وجود دارد. میتوانید با اطمینان از ایجاد پایگاه داده Realtime و دانلود google-services.json ، مقدار صحیح این ویژگی را بدست آورید.
لنگر بگذارید
- به محض اینکه برنامه شروع به شناسایی هواپیماها کرد، روی صفحه نمایش خود ضربه بزنید تا یک لنگر روی یکی از هواپیماهای شناسایی شده قرار دهید.
- برای میزبانی لنگر قرار داده شده، روی دکمه HOST ضربه بزنید. این کار یک درخواست میزبانی به ARCore API ارسال میکند که شامل دادههایی است که موقعیت لنگر را نسبت به ویژگیهای بصری نزدیک آن نشان میدهد.
یک درخواست میزبان موفق، یک لنگر (anchor) در محل قرار داده شده ایجاد میکند و یک شناسه Cloud Anchors به آن اختصاص میدهد. اگر درخواست میزبان موفقیتآمیز باشد، برنامه باید یک کد اتاق را نمایش دهد. میتوانید از این کد برای دسترسی به لنگرهای میزبانی شده قبلی برای این اتاق در هر دستگاهی استفاده کنید.
یک لنگر را حل کنید
- برای دسترسی به لنگرهای میزبانیشده در این اتاق، روی RESOLVE ضربه بزنید و کد اتاقی که قبلاً برگردانده شده را وارد کنید. این کار یک درخواست حل اختلاف به API ARCore ارسال میکند که شناسههای تمام لنگرهای میزبانیشده در اتاق را برمیگرداند.
cloud_anchor_javaاز این شناسهها برای رندر کردن اشیاء سهبعدی متصل به لنگرهای میزبانیشده استفاده خواهد کرد.
قدم بعدی چیست؟
- یک برنامه Cloud Anchors با ARCore Cloud Anchors و با استفاده از Codelab مربوط به Cloud Anchors ایجاد کنید.
- با استفاده از راهنمای توسعهدهندگان Cloud Anchors، یاد بگیرید که چگونه Cloud Anchors را در برنامه خود بگنجانید.
- با استفاده از API مدیریت Cloud Anchors، میتوانید Cloud Anchors را خارج از برنامه ARCore خود مدیریت کنید.