تعرَّف على كيفية استخدام Cloud Anchors في تطبيقاتك.
المتطلبات الأساسية
احرص على فهم مفاهيم الواقع المعزّز الأساسية وكيفية ضبط جلسة ARCore قبل المتابعة.
إذا كنت مستخدمًا جديدًا لتطبيق Cloud Anchors:
- احرص على فهم آلية عمل نقاط الربط ونقاط الربط في السحابة الإلكترونية.
- راجِع التشغيل السريع في Cloud Anchors للاطّلاع على متطلبات النظام وتعليمات الإعداد والتثبيت.
تفعيل ARCore API
قبل استخدام ميزة "تثبيتات السحابة الإلكترونية" في تطبيقك، عليك أولاً تفعيل واجهة برمجة التطبيقات ARCore API في تطبيقك.
تفعيل إمكانات Cloud Anchor في إعدادات الجلسة
بعد تفعيل وظائف "محطات الربط في السحابة الإلكترونية" في تطبيقك، فعِّل إمكانات "محطات الربط في السحابة الإلكترونية" في إعداد جلسة الواقع المعزّز في تطبيقك حتى يتمكّن من التواصل مع واجهة برمجة تطبيقات ARCore:
Java
Config config = new Config(session); config.setCloudAnchorMode(Config.CloudAnchorMode.ENABLED); session.configure(config);
Kotlin
val config = Config(session) config.cloudAnchorMode = Config.CloudAnchorMode.ENABLED session.configure(config)
استضافة Cloud Anchor
تبدأ عملية الاستضافة بمكالمة إلى hostCloudAnchorAsync()
. ستحمِّل أداة ARCore البيانات المرئية ووضعيات الجهاز ووضعية العنصر الأساسي إلى واجهة برمجة التطبيقات ARCore API. بعد ذلك، تعالج واجهة برمجة التطبيقات هذه المعلومات لإنشاء خريطة ميزات ثلاثية الأبعاد، وتُعرِض في النهاية معرّفًا فريدًا لـ Cloud Anchor للعنصر المرجعي على الجهاز.
يمكنك أيضًا إطالة مدة عمل العنصر الأساسي المستضاف باستخدام ARCore Cloud Anchor Management API.
يجب أن يتّبع تطبيقك الخطوات التالية لإكمال استضافة "نقطة ارتساء السحابة الإلكترونية":
- يُرجى الاتصال على
hostCloudAnchorAsync()
. - انتظِر تلقّي مكالمة من فريق الدعم، أو تحقّق باستمرار من حالة "في المستقبل" إلى أن تكتمل العملية.
- تحقّق من حالة النتيجة لتحديد ما إذا نجحت العملية أو تفسير رمز الخطأ في حال تعذّر إكمالها.
- شارِك مع العملاء الآخرين معرّف Cloud Anchor الناتج، واستخدِمه لحلّ Cloud Anchor باستخدام
resolveCloudAnchorAsync()
.
التحقّق من جودة ربط نقاط العناصر
يشير Session.FeatureMapQuality
إلى جودة نقاط العناصر التي رصدتها تقنية ARCore في الثواني القليلة السابقة من وضع الكاميرا المحدّد. يتم بشكل عام حلّ نقاط الربط في السحابة الإلكترونية المستضافة باستخدام ميزات ذات جودة أعلى بدقة أكبر. استخدِم Session.estimateFeatureMapQualityForHosting()
للحصول على تقدير لجودة خريطة الميزات لوضع كاميرا معيّن.
القيمة | الوصف |
---|---|
INSUFFICIENT |
جودة نقاط العناصر المحدَّدة من الوضع في الثواني القليلة السابقة منخفضة. تشير هذه الحالة إلى أنّه من المحتمل أن تواجه ARCore صعوبة أكبر في حلّ Cloud Anchor. اطلب من المستخدم تحريك الجهاز حتى يمكن رؤية موضع Cloud Anchor المطلوب استضافته من زوايا مختلفة. |
SUFFICIENT |
من المرجّح أن تكون جودة نقاط العناصر المحدّدة من الوضع في الثواني القليلة السابقة كافية لكي يتمكّن ARCore من تحديد نقطة ارتساء في السحابة الإلكترونية بنجاح، على الرغم من أنّه من المرجّح أن تنخفض دقة الوضع المحدّد. اطلب من المستخدم تحريك الجهاز حتى يمكن رؤية موضع Cloud Anchor المطلوب استضافته من زوايا مختلفة. |
GOOD |
من المرجّح أن تكون جودة نقاط العناصر المحدّدة من الوضع في الثواني القليلة السابقة كافية لكي يتمكّن ARCore من حلّ نقطة تثبيت السحابة الإلكترونية بدرجة عالية من الدقة. |
حلّ نقطة إرساء مستضافة سابقًا
يُرجى الاتصال برقم resolveCloudAnchorAsync()
لحلّ مشكلة "نقطة تثبيت السحابة الإلكترونية" المستضافة. تقارن واجهة برمجة التطبيقات ARCore API بشكل دوري بين العناصر المرئية من المشهد وخريطة العناصر الثلاثية الأبعاد للعنصر الأساسي لتحديد موضع المستخدم واتجاهه بالنسبة إلى العنصر الأساسي. عند العثور على مطابقة، تعرض واجهة برمجة التطبيقات وضع Cloud Anchor المستضافة.
يمكنك بدء عمليات حلّ لعدة منصات في السحابة الإلكترونية بالتسلسل. يمكن أن تتوفّر ما يصل إلى 40 عملية متزامنة من عمليات "تثبيت العناصر في السحابة الإلكترونية" في الوقت نفسه.
إلغاء عملية أو إزالة Cloud Anchor
يمكنك الاتصال بالرقم cancel()
لإلغاء عملية معلّقة في Cloud Anchor.
اتصل بالرقم detach()
لإزالة Cloud Anchor تم حلّه من التطبيق.
التحقّق من حالة نتيجة عملية Cloud Anchor
استخدِم Anchor.CloudAnchorState للاطّلاع على حالة نتيجة عملية الاستضافة أو الحل، بما في ذلك الأخطاء.
القيمة | الوصف |
---|---|
ERROR_CLOUD_ID_NOT_FOUND |
تعذّر حلّ المشكلة بسبب عدم تمكّن واجهة برمجة تطبيقات ARCore من العثور على رقم تعريف Cloud Anchor المقدَّم. |
ERROR_HOSTING_DATASET_PROCESSING_FAILED |
تعذّر الاستضافة لأنّ الخادم لم يتمكّن من معالجة مجموعة البيانات للإشارة المحدّدة بنجاح. يُرجى إعادة المحاولة بعد أن يجمع الجهاز المزيد من البيانات من البيئة. |
ERROR_HOSTING_SERVICE_UNAVAILABLE |
تعذّر الوصول إلى واجهة برمجة التطبيقات ARCore API. وقد يحدث ذلك نتيجة لعدة أسباب. قد يكون الجهاز في وضع الطيران أو قد لا يكون متصلاً بالإنترنت. قد تكون مهلة الطلب المرسَل إلى الخادم قد انتهت بدون تلقّي أي استجابة. قد يكون هناك اتصال ضعيف بالشبكة أو عدم توفّر نظام أسماء النطاقات (DNS) أو مشاكل في جدار الحماية أو أي شيء آخر قد يؤثر في قدرة الجهاز على الاتصال بواجهة برمجة التطبيقات ARCore API. |
ERROR_INTERNAL |
اكتملت مهمة استضافة أو حلّ لهذه النقطة الأساسية بظهور خطأ داخلي. ويجب ألا يحاول التطبيق استعادة رسالة الخطأ هذه. |
ERROR_NOT_AUTHORIZED |
التفويض الذي قدّمه التطبيق غير صالح. يُرجى الاطّلاع على تحديد المشاكل وحلّها في تفويض واجهة برمجة تطبيقات ARCore. |
ERROR_RESOLVING_SDK_VERSION_TOO_NEW |
تعذّر حلّ عنصر Cloud Anchor لأنّ إصدار حزمة SDK المستخدَم لحلّ العنصر أحدث من الإصدار المستخدَم لاستضافته وغير متوافق معه. |
ERROR_RESOLVING_SDK_VERSION_TOO_OLD |
تعذّر حلّ عنصر Cloud Anchor لأنّ إصدار حزمة تطوير البرامج (SDK) المستخدَم لحلّ العنصر أقدم من الإصدار المستخدَم لاستضافته وغير متوافق معه. |
ERROR_RESOURCE_EXHAUSTED |
استنفد التطبيق حصة الطلبات المخصّصة لمشروع Google Cloud المحدّد. يجب طلب حصة إضافية لواجهة برمجة التطبيقات ARCore لمشروعك من Google Developers Console. |
SUCCESS |
اكتملت مهمة استضافة أو حلّ لهذه النقطة الأساسية بنجاح. |
حصص واجهة برمجة التطبيقات لطلبات المضيف والبحث
تتضمّن واجهة برمجة التطبيقات ARCore API الحصص التالية لمعدل نقل بيانات الطلبات:
نوع الحصة | الحد الأقصى | المدة | ينطبق على |
---|---|---|---|
عدد نقاط الربط | غير محدودة | لا ينطبق | المشروع |
طلبات استضافة المحتوى الأساسي | 30 | دقيقة | عنوان IP والمشروع |
طلبات حلّ التناقضات | 300 | دقيقة | عنوان IP والمشروع |
أفضل الممارسات لتوفير تجربة مستخدم جيدة
يُرجى توجيه المستخدمين إلى تنفيذ ما يلي لضمان تقديم تجربة جيدة لهم في تطبيقك:
- انتظِر بضع ثوانٍ بعد بدء الجلسة قبل محاولة استضافة علامة مرجعية (من خلال وضع عنصر أو غير ذلك). يمنح ذلك عملية التتبّع بعض الوقت حتى تستقرّ.
- عند اختيار موقع جغرافي لاستضافة العنصر الأساسي، حاوِل العثور على منطقة تتضمّن عناصر مرئية يمكن تمييزها بسهولة عن بعضها. للحصول على أفضل النتائج، تجنَّب الأسطح العاكسة أو الأسطح التي لا تتضمّن عناصر مرئية، مثل الجدران البيضاء الفارغة.
أبقِ الكاميرا مدرَّبة على مركز الاهتمام وحرِّك الجهاز حول مركز الاهتمام لرسم خريطة للبيئة من زوايا مختلفة مع الحفاظ على المسافة المادية نفسها تقريبًا. سيساعد ذلك في التقاط المزيد من البيانات المرئية وتسهيل عملية التحليل.
تأكَّد من توفُّر إضاءة كافية في البيئة الواقعية أثناء استضافة "محطات الربط في السحابة الإلكترونية" وتحديد مواقعها.
سياسة الإيقاف النهائي
- تنطبق سياسة إيقاف Cloud Anchor API نهائيًا على التطبيقات التي تم إنشاؤها باستخدام الإصدار 1.12.0 من حزمة تطوير البرامج (SDK) لـ ARCore أو إصدار أحدث.
- لا يمكن للتطبيقات التي تم إنشاؤها باستخدام حزمة تطوير البرامج (SDK) 1.11.0 أو إصدار أقدم من ARCore استضافة "نقاط الإسناد في السحابة الإلكترونية" أو حلّها بسبب استخدام حزمة SDK لواجهة برمجة تطبيقات ARCore قديمة تم إيقافها نهائيًا.
الخطوات التالية
- أنشئ تطبيقًا يستخدم ميزة "تثبيتات السحابة الإلكترونية" من خلال الدرس التطبيقي حول ميزة "تثبيتات السحابة الإلكترونية" في ARCore باستخدام تثبيتات السحابة الإلكترونية الثابتة.
- اطّلِع على كيفية استضافة "عناصر الربط في السحابة الإلكترونية" وحلّها من خلال نموذجَين من التطبيقات في الدليل السريع لاستخدام "عناصر الربط في السحابة الإلكترونية".
- يمكنك إدارة "نقاط الربط في السحابة الإلكترونية" خارج تطبيق ARCore باستخدام واجهة برمجة التطبيقات Cloud Anchors Management API.
- اطّلِع على المستندات المرجعية لنظام التشغيل Android للتعرّف على المزيد من الطرق لاستخدام ARCore في تطبيقك.