רוצים לדעת איך משתמשים במודעות עוגן בענן באפליקציות שלכם?
דרישות מוקדמות
לפני שממשיכים, חשוב לוודא שאתם מבינים את המושגים הבסיסיים של AR ואת האופן שבו מגדירים סשן של ARCore.
למשתמשים חדשים ב-Cloud anchors:
- חשוב לוודא שאתם מבינים איך פועלים מודעות עוגן ומודעות עוגן בענן.
- קוראים את quickstart של עוגנים בענן כדי לקבל מידע על דרישות המערכת, על ההתקנה ועל הוראות ההתקנה.
הפעלת ARCore API
כדי להשתמש ב-Cloud anchors באפליקציה, צריך קודם להפעיל את ARCore API באפליקציה.
הפעלת יכולות של Cloud עוגן בהגדרות הסשן
לאחר שהפעלתם באפליקציה את הפונקציונליות של Cloud anchors, עליכם להפעיל את היכולות של Cloud anchors בהגדרות של פעילות ה-AR באפליקציה כדי שהיא תוכל לתקשר עם ARCore API:
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 עוגן
האירוח מתחיל עם שיחה אל hostCloudAnchorAsync()
. ARCore יעלה נתונים חזותיים, תנוחות המכשיר ותנוחת העוגן אל ARCore API. לאחר מכן ה-API מעבד את המידע הזה כדי ליצור מפת תכונות תלת-ממדיות, ובסופו של דבר מחזיר מזהה Cloud עוגן ייחודי עבור העוגן במכשיר.
אפשר גם להאריך את משך החיים של עוגן מתארח באמצעות ARCore Cloud anchor Management API.
כדי להשלים את האירוח של Cloud עוגן, האפליקציה צריכה לבצע את השלבים הבאים:
- קוראים לפונקציה
hostCloudAnchorAsync()
. - להמתין לקריאה החוזרת (callback), או להמשיך לבדוק את המצב העתידי עד שהיא תסתיים.
- יש לבדוק את מצב התוצאה כדי לראות אם הפעולה הצליחה, או לפרש את קוד השגיאה אם היא נכשלה.
- אפשר לשתף את מזהה ה-Cloud anchor של התוצאה עם לקוחות אחרים, ולהשתמש בו כדי לתקן את ה-Cloud anchor באמצעות
resolveCloudAnchorAsync()
.
בדיקת איכות המיפוי של נקודות תכונות
Session.FeatureMapQuality
מציין את האיכות של נקודות מהתכונות שנצפו על ידי ARCore בשניות הקודמות מתנוחה נתונה במצלמה. בדרך כלל, תגובות עוגן בענן שמתארחות בתכונות באיכות גבוהה יותר יטופלו בצורה מדויקת יותר. באמצעות Session.estimateFeatureMapQualityForHosting()
ניתן לקבל הערכה לגבי איכות מפת התכונות בתנוחת מצלמה נתונה.
Value | תיאור |
---|---|
INSUFFICIENT |
איכות הנקודות על התכונות שזוהו מהתנוחה במספר השניות הקודמות היא נמוכה. המצב הזה מצביע על כך שככל הנראה ARCore יתקשה יותר לפתור את העוגן בענן. כדאי לעודד את המשתמשים להזיז את המכשיר כדי שניתן יהיה לצפות במיקום הרצוי של ה-Cloud עוגן שהוא רוצה לארח מזוויות שונות. |
SUFFICIENT |
סביר להניח שהאיכות של נקודות הפיצ'ר שזוהו מהתנוחה במספר השניות הקודמות תספיק ל-ARCore כדי לפענח בהצלחה עוגן בענן, אם כי סביר להניח שהדיוק של התנוחה שטופלה יפחת. כדאי לעודד את המשתמשים להזיז את המכשיר כדי שניתן יהיה לצפות במיקום הרצוי של ה-Cloud עוגן שהוא רוצה לארח מזוויות שונות. |
GOOD |
סביר להניח שהאיכות של נקודות הפיצ'ר שזוהו מהתנוחה בשניות הקודמות תספיק ל-ARCore כדי לתקן עוגן בענן ברמת דיוק גבוהה. |
תיקון עוגן שמתארח בעבר
צריך להפעיל את resolveCloudAnchorAsync()
כדי לטפל ב-Cloud עוגן מתארח. ממשק ARCore API משווה מדי פעם בין תכונות חזותיות מהסצנה לבין מפת התכונות התלת-ממדית של העוגן כדי לזהות את המיקום והכיוון של המשתמש ביחס לעוגן. כשה-API מוצא התאמה, הוא מחזיר את התנוחה של Cloud עוגן המתארח.
אפשר ליזום ברצף מספר הגדרות של עוגנים בענן. יכולות להתקיים עד 40 פעולות בו-זמניות של Cloud עוגן.
ביטול פעולה או הסרה של Cloud עוגן
אפשר להתקשר אל cancel()
כדי לבטל פעולה בהמתנה של Cloud anchor.
צריך להפעיל את detach()
כדי להסיר מהאפליקציה עוגן בענן שכבר טופל.
בדיקת מצב התוצאה של פעולה של Cloud anchor
משתמשים ב-Anchor.CloudAnchorState כדי לבדוק את סטטוס התוצאה של פעולת האירוח או הפתרון, כולל שגיאות.
Value | תיאור |
---|---|
ERROR_CLOUD_ID_NOT_FOUND |
פתרון הבעיה נכשל כי ממשק ה-API של ARCore לא מצא את מזהה ה-Cloud עוגן שסופק. |
ERROR_HOSTING_DATASET_PROCESSING_FAILED |
האירוח נכשל כי השרת לא הצליח לעבד את מערך הנתונים עבור העוגן הנתון. יש לנסות שוב אחרי שהמכשיר יאסוף עוד נתונים מהסביבה. |
ERROR_HOSTING_SERVICE_UNAVAILABLE |
לא ניתן היה לגשת ל-ARCore API. מספר סיבות עלולות לגרום לבעיה. ייתכן שהמכשיר במצב טיסה או שאין לו חיבור פעיל לאינטרנט. ייתכן שתם הזמן הקצוב לתפוגה של הבקשה שנשלחה לשרת ולא התקבלה תגובה. יכול להיות שיש חיבור רשת בעייתי, חוסר זמינות ב-DNS, בעיות בחומת האש או כל דבר אחר שעלול להשפיע על היכולת של המכשיר להתחבר ל-ARCore API. |
ERROR_INTERNAL |
משימת אירוח או פתרון של עוגן זה הסתיימה עם שגיאה פנימית. האפליקציה לא אמורה לנסות לשחזר את השגיאה. |
ERROR_NOT_AUTHORIZED |
ההרשאה שניתנה על ידי האפליקציה לא חוקית. כדאי לעיין בפתרון בעיות בהרשאה של ARCore API. |
ERROR_RESOLVING_SDK_VERSION_TOO_NEW |
לא ניתן היה לפתור את הבעיה ב'עוגן בענן' כי גרסת ה-SDK שמשמשת לפתרון של העוגן היא חדשה יותר ולא תואמת לגרסה ששימשה לאירוח העוגן. |
ERROR_RESOLVING_SDK_VERSION_TOO_OLD |
לא ניתן היה לפתור את הבעיה ב'עוגן בענן' כי גרסת ה-SDK שמשמשת לפתרון של העוגן היא ישנה יותר ולא תואמת לגרסה ששימשה לאירוח העוגן. |
ERROR_RESOURCE_EXHAUSTED |
האפליקציה מיצתה את מכסת הבקשות שהוקצתה לפרויקט Google Cloud שצוין. עליך לבקש מכסה נוספת ל-ARCore API לפרויקט שלך דרך Google Developers Console. |
SUCCESS |
משימת אירוח או פתרון של עוגן זה הושלמה בהצלחה. |
מכסות API למארחים ובקשות לטיפול
ל-ARCore API יש את המכסות הבאות לרוחב הפס של בקשות:
סוג המכסה | מקסימום | משך הזמן | תחולה |
---|---|---|---|
מספר הדיבלים | ללא הגבלה | לא רלוונטי | פרויקט |
בקשות מארח עוגן | 30 | דקה | כתובת IP ופרויקט |
עוגן בקשות resolve | 300 | דקה | כתובת IP ופרויקט |
שיטות מומלצות לשיפור חוויית המשתמש
הנחה את המשתמשים לבצע את הפעולות הבאות כדי להבטיח חוויית משתמש טובה באפליקציה:
- צריך להמתין מספר שניות אחרי התחלת הסשן לפני שמנסים לארח עוגן (על ידי מיקום אובייקט וכו'). הפעולה הזו מאפשרת למעקב זמן מה עד שהמעקב יתייצב.
- כשבוחרים מיקום לאירוח העוגן, כדאי למצוא אזור עם תכונות חזותיות שקל להבדיל ביניהן. כדי לקבל את התוצאות הטובות ביותר, יש להימנע משטחים או משטחים עם השתקפות שאינם משקפים את המצב החזותי, כמו קירות לבנים ריקים.
צריך לאמן את המצלמה על מרכז העניין ולהזיז את המכשיר סביב מרכז העניין כדי למפות את הסביבה מזוויות שונות, תוך שמירה על מרחק פיזי דומה לזה.
בזמן האירוח והפתרון של עוגנים בענן, צריך לוודא שיש תאורה מספקת בסביבה האמיתית.
מדיניות הוצאה משימוש
- אפליקציות שפותחו עם ARCore SDK מגרסה 1.12.0 ואילך כפופות למדיניות ההוצאה משימוש של Cloud anchor API.
- אפליקציות שפותחו באמצעות SDK מגרסה 1.11.0 ומטה של ARCore לא יכולות לארח או לטפל בעוגנים בענן, בגלל השימוש ב-ARCore API ישן יותר שהוצא משימוש.
מה השלב הבא?
- יצירת אפליקציה ל-Cloud anchors באמצעות ARCore Cloud anchors באמצעות Cloud anchors.
- במדריך למתחילים של Cloud anchors מפורטים שתי אפליקציות לדוגמה לצורך אירוח ופתרון בעיות ב-Cloud anchors.
- ניהול Cloud anchors מחוץ לאפליקציית ARCore באמצעות Cloud anchors Management API.
- כדאי לעיין במסמכי התיעוד של Android כדי לקבל מידע על דרכים נוספות לשימוש ב-ARCore באפליקציה.