LiveCard
בכיתה הזו תהיה לך אפשרות ליצור כרטיסים פעילים ולפרסם אותם בציר הזמן.
מידע נוסף על יצירת כרטיסים פעילים זמין המדריך למפתחים בנושא כרטיסים פעילים.
חייו של כרטיס פעיל
כדי להשתמש בכרטיסים בשידור חי, נדרש הקשר לטווח ארוך כדי שיהיו בבעלותם כל הזמן.
פורסמו, לכן צריך לנהל אותם ברקע Service
. לאחר מכן אפשר
לפרסם כרטיס פעיל ברגע שהשירות מתחיל או בתגובה לאירועים אחרים ש
מוניטורים. באופן דומה, צריך לבטל את הפרסום של כרטיסים כשהם כבר לא רלוונטיים או
השירות מושמד.
כשמפרסמים כרטיס פעיל, אפשר לבחור איך הוא ישפיע על המשתמשים. כשמפרסמים באופן שקט, הכרטיס יתווסף לציר הזמן ללא השפעה נראית לעין: המשתמשים יצטרכו להחליק כדי בכרטיס כדי לראות אותו. אפשר גם להציג את הכרטיס הפעיל באופן אוטומטי מיד אחרי פורסם. האפשרות הזו שימושית בדרך כלל כשממשק המשתמש הראשי של האפליקציה הוא כרטיס פעיל ולא פעילות.
הצגת תוכן בכרטיס פעיל
כרטיס פעיל יכול להציג תוכן ממשאב פריסה או בכך שהוא מאפשר לקוד שלך לעבד ישירות על משטח השרטוט שלו. עליך לבחור את השיטה המתאימה ביותר לאפליקציה שלך באיזו תדירות צריך לעדכן את התוכן בכרטיס, ואם אתם מבצעים רינדור בעיקר ווידג'טים או גרפיקה בפורמט חופשי.
ניפוח של פריסה באמצעות תצוגות מרוחקות
אם לאפליקציה נדרשים רק ווידג'טים רגילים ועדכונים לא תכופים (בערך מספר שניות או
יותר בין רענון), ולאחר מכן ליצור את הכרטיס בעזרת הכיתה RemoteViews
.
האובייקט RemoteViews
מאפשר לציר הזמן ב-Glass, שפועל בתהליך נפרד מ-
כדי להגדיל את הפריסה שיצרתם.
LiveCard liveCard; // initialized elsewhere RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_layout); liveCard.setViews(views);
חשוב לדעת שאחרי שכרטיס שמבוסס על RemoteViews
מתפרסם, השינויים בתצוגות המתבצעים על ידי
הקריאה לשיטות set*
לא תהיה גלויה בציר הזמן, אלא אם תתבצע קריאה מפורשת
setViews
בכרטיס הפעיל כדי לאלץ עדכון.
משורטט ישירות על משטח הכרטיס הפעיל
אם האפליקציה מחייבת עדכונים תכופים יותר (כמה פעמים בשנייה) או עיבוד נוסף
הגרפיקה המתקדמת יותר בהשוואה לווידג'טים הרגילים, מאפשרת עיבוד ישיר והוספת
SurfaceHolder.Callback
על המסך.
LiveCard liveCard; // initialized elsewhere liveCard.setDirectRenderingEnabled(true); liveCard.getSurfaceHolder().addCallback(callback);
לאחר מכן אפשר לשרטט ישירות על פני השטח בתוך שרשור ברקע או בתגובה
אירועים (לדוגמה, עדכוני חיישנים או עדכוני מיקום). שימוש בsurfaceCreated
וב
surfaceDestroyed
שיטות להפעלה ולעצירה של לוגיקת הרינדור כשהכרטיס
להיות מוצגות או מוסתרות.
חשוב לשים לב ששיטות הקריאה החוזרת של בעלי הפלטפורמה לא מופעלות בשרשור הראשי של ממשק המשתמש.
טיפול בבחירת כרטיסים פעילים
כרטיס פעיל צריך לכלול פעולה (PendingIntent
כדי להתחיל פעילות,
שירות, או שידור) שיבוצע כשהמשתמש יקיש כדי לבחור את הכרטיס.
בדרך כלל הפעולה הזו תשמש אותך כדי להתחיל פעילות שמציגה תפריט אפשרויות או מבצעת
את המשתמש לחלק אחר של האפליקציה. לכל הפחות, עליך לספק אפשרות
שמאפשרת למשתמש להסיר את הכרטיס הפעיל מציר הזמן.
LiveCard liveCard; // initialized elsewhere Intent intent = new Intent(context, MyActivity.class); liveCard.setAction(PendingIntent.getActivity(context, 0, intent, 0));
כרטיסים פעילים ללא פעולה לא יוצגו.
מחלקות מקוננות | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
טיפוסים בני מנייה (enum) | LiveCard.PublishMode | ההגדרה הזו קובעת איך הכרטיס יוצג למשתמש בעת הפרסום. |
קבועים | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
String | EXTRA_FROM_LIVECARD_VOICE | תוספת בוליאנית שמציינת Intent הופעלה באמצעות קול מכרטיס פעיל. |
בנייה ציבורית | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
שיטות ציבוריות | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
LiveCard | |||||||||||
SurfaceHolder | |||||||||||
בוליאני | |||||||||||
ריק |
navigate()
|
||||||||||
ריק | |||||||||||
LiveCard |
setAction(Intent של PendingIntent)
|
||||||||||
LiveCard |
setDirectRenderingEnabled(הפעלה בוליאנית)
|
||||||||||
LiveCard |
setRenderer(כלי לרינדור GlRenderer)
|
||||||||||
LiveCard |
setViews(תצוגות RemoteViews)
|
||||||||||
LiveCard |
setVoiceActionEnabled(הפעלה בוליאנית)
|
||||||||||
ריק |
שיטות שעברו בירושה | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
קבועים
בנייה ציבורית
שיטות ציבוריות
ציבורי LiveCard צירוף קובץ (שירות)
יש לצרף Service
רקע כדי שהכרטיס הזה
פורסם, השירות הנתון יגדיר לפעול בחזית.
השירות יוסר אוטומטית מהחזית הפרסום של הכרטיס הפעיל בוטל.
פרמטרים
שירות | יוגדר להרצה ב-foregound |
---|
החזרות
- האובייקט הזה לשרשורת שיחות
ציבורי SurfaceHolder getSurfaceHolder ()
כשעיבוד ישיר מופעל, מעניק גישה ל-Surface
שעליו יש לצייר.
לתשומת ליבכם: הSurfaceHolder
שהוחזר צריך לשמש רק כאמצעי גישה
בפלטפורמה מנוהלת. אין שימוש בשיטות לשינוי הצורה והסוג של המשטח.
שימו לב גם שקריאות חוזרות (callback) לאובייקט הזה לא מתבצעות בשרשור של ממשק המשתמש.
ראו בנוסף
ציבורי בוליאני isPublished ()
הפונקציה מחזירה את הערך true
אם הכרטיס מפורסם כרגע.
ציבורי ריק ניווט ()
שליחת המשתמש לכרטיס הזה בציר הזמן.
קליעות
IllegalStateException | אם הכרטיס לא פורסם |
---|
ציבורי ריק פרסום (LiveCard.PublishModeמצב)
פרסום הכרטיס הזה בציר הזמן.
הכרטיס יוצג רק אם הוא כולל פעולה, ואם הרינדור הישיר מופעל או תצוגות מרוחקות הוגדרו.
פרמטרים
מצב | קובע איך הכרטיס יוצג למשתמש |
---|
ציבורי LiveCard setAction (PendingIntent Intent)
שינוי הפעולה שננקטת כשהכרטיס נבחר.
פרמטרים
Intent | יופעל כשהכרטיס ייבחר |
---|
החזרות
- האובייקט הזה לשרשורת שיחות
ציבורי LiveCard setDirectRenderingEnabled (הפעלה בוליאנית)
מאפשר רינדור ישיר.
במצב הזה, צריך לעבד את התוכן בכרטיס ישירות אל Surface
.
לידיעתכם, אפשר לקרוא לשיטה הזו רק כשהכרטיס לא מפורסם. אחרת, להקפיץ הודעת שגיאה.
פרמטרים
enable | האם צריך להפעיל עיבוד ישיר |
---|
החזרות
- האובייקט הזה לשרשורת שיחות
ראו בנוסף
ציבורי LiveCard setRenderer (GlRenderer כלי לרינדור)
הוספת כלי לעיבוד מבוסס OpenGL.
כלי הרינדור ישמש לשרטוט על משטח המבוקש (באופן אוטומטי) להעברה ישירה ברינדור.
החזרות
- האובייקט הזה לשרשורת שיחות
ציבורי LiveCard setViews (RemoteViews)
שינוי RemoteViews
המשמש להצגת ממשק המשתמש של הכרטיס הזה.
יש לקרוא לשיטה הזו גם לאחר ביצוע שינויים ישירות בתצוגות המרוחקות של של כרטיס שפורסם, או שהשינויים האלה לא יופיעו בציר הזמן.
לשיטה הזו אין השפעה אם מופעל רינדור ישיר.
פרמטרים
צפיות | ממשק המשתמש של הכרטיס |
---|
החזרות
- האובייקט הזה לשרשורת שיחות
ראו בנוסף
ציבורי LiveCard setVoiceActionEnabled (הפעלה בוליאנית)
ההגדרה הזו מפעילה פעולה קולית כשהכרטיס מוצג בציר הזמן.
כשההגדרה מופעלת, הכרטיס מאזין ל-"ok Gor" כשמוצגת בציר הזמן, וגם
כשביטוי השמירה הזה נאמר, מפעיל את הכוונה שהוגדרה על ידי
אמצעי תשלום אחד (setAction(PendingIntent)
). אם הכוונה מתחילה
פעילות שכוללת תפריטים קוליים לפי הקשר, הפעילות תבוצע באופן אוטומטי
לפתוח את האפשרויות הראשונות בתפריט (כלומר, כאילו נאמר "ok בלי זכוכית" במהלך הפעילות).
עצמו). התכונה הזו מאפשרת להטמיע תפריטים קוליים לפי הקשר בכרטיסים פעילים.
פרמטרים
enable | האם צריך להפעיל את הפעולה הקולית |
---|
החזרות
- האובייקט הזה לשרשורת שיחות
ראו בנוסף
ציבורי ריק ביטול הפרסום ()
ביטול הפרסום של הכרטיס הזה מציר הזמן.