PracticU

Fused Provider

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › Fused Provider
מילון מושגים:
API - ממשק תכנותי שמגדיר כיצד תוכנה אחת פונה לאחרת ומחליפה איתה נתונים ופעולות.
לקוח - תוכנה או מחשב שפונים לשרת ומבקשים ממנו שירות או מידע, למשל דפדפן שמבקש דף אינטרנט.
כפתור - רכיב בממשק המשתמש שהמשתמש לוחץ עליו כדי להפעיל פעולה, כמו שליחת טופס או מעבר לדף אחר.
הרשאה - קביעה אילו פעולות ומשאבים מותרים למשתמש או לתהליך לאחר שזהותו אומתה. שולטת במי רשאי לעשות מה.

Fused Provider
Fused Provider מציג איך משתמשים בפרוביידר המאוחד של Google Play Services, שמשלב את מקורות המיקום השונים של המכשיר ובוחר את הטוב ביותר לפי הקריטריון שנקבע.
השלבים העיקריים
1. הוספת התלות: מוסיפים את Google Play Services, שכוללת את ה-Fused Location API.
2. GoogleApiClient: יוצרים את הלקוח בעזרת Builder, ומוסיפים לו מאזין ל-ConnectionCallbacks, מאזין ל-OnConnectionFailedListener, ואת LocationServices.API.
3. LocationRequest: מגדירים כל כמה זמן לקבל עדכון (5 שניות), את המהירות המינימלית לעדכון (Fastest Interval) ואת העדיפות (PRIORITY_HIGH_ACCURACY). ה-Interval הוא זמן מיועד בלבד, והמערכת יכולה לדווח לפעמים מהר יותר או לאט יותר.
4. התחברות: לחיצה על הכפתור קוראת ל-connect. אם ההתחברות הצליחה, מופעלת onConnected, ושם נרשמים לעדכונים אחרי בקשת הרשאה.
5. רישום לעדכונים: LocationServices.FusedLocationApi.requestLocationUpdates מקבל את הלקוח, את הבקשה ואת המאזין. לביטול משתמשים ב-removeLocationUpdates, ואחר כך מנתקים את הלקוח.
6. טיפול בשגיאות: onConnectionSuspended מנסה להתחבר שוב. onConnectionFailed מציג את קוד השגיאה והודעתה.
7. מיקום אחד בלבד: Last Location נותן את המיקום האחרון בלי רישום לעדכונים.
שימו לב
המרצה מציין שאם ההגדרות של המכשיר כבויות, הפרוביידר המאוחד לא יוכל לקבל מיקום, ושבשיעור הבא מטפלים בכך.
בסיום ההרצאה הסטודנט יודע להשתמש ב-Fused Location API, לרשום לעדכוני מיקום ולבטל רישום, ולטפל בשגיאות החיבור.
השיעור הבא בקורס: Location Settings Dialog

פרקי ההרצאה: Fused Provider

  1. 00:00

    מיקום המשתמש עם Fused Provider

  2. 01:18

    חיבור ל-Google Play Services

  3. 03:25

    בניית GoogleApiClient עם Builder

  4. 05:24

    מימוש ממשקי ההתחברות של ה-API

  5. 07:06

    הגדרת LocationRequest: Interval ו-Fastest Interval

  6. 08:44

    בחירת Priority לדיוק המיקום

תמלול ההרצאה: Fused Provider

הטקסט המלא של הדקות הראשונות בהרצאה «Fused Provider» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    בסרטונים האחרונים עבדנו עם הפרוביידרים השונים שקיימים בילד אין במכשיר בכדי לקבל את מיקום המשתמש וזה מעולה כאשר אנחנו רוצים להיות בשליטה מושלמת על איזה פרוביידר אנחנו עובדים איתו דרך איזה פרוביידר לקבל את המיקום וכדומה אבל ראינו בהתחלה שקיים פרוביידר שנקרא פיוזד פרוביידר

  2. 00:23

    והפרוביידר הזה זה בעצם API שגוגל הוסיפו שאם אנחנו עובדים איתו הוא משתמש בבילד אין פרוביידר שאנחנו עבדנו איתם בכדי להביא לנו את מיקום המשתמש.

  3. 00:35

    ולפעמים קורה מצב שאני רוצה פשוט לתת לגוגל להביא לי את המיקום, לתת לו איזשהו קריטריון חיפוש ולפיו הגוגל יחפש את הפרוביידר הטוב ביותר ודרכו ימצא לנו את מיקום המשתמש.

  4. 00:51

    בסרטון הזה אנחנו הולכים לראות איך לעבוד עם ה-Fused Provider. יש לנו כאן את ה-UI שהיה לנו מקודם, יש לנו את ה-register ויש לנו את ה-unregister ויש לנו פה text view לקבלת או להצגת מיקום המשתמש.

  5. 01:06

    מה שיש לנו כאן ב-JavaCode זה פשוט רק הקטע קוד הזה של ה-text view שאיתרנו אותו ובו אנחנו רוצים להציג את מיקום המשתמש. אין לנו פה שום קוד אחר מפני שהקוד של שימוש ב-fused provider הוא די שונה מהקודים שעבדנו איתם בסרטונים הקודמים.

  6. 01:29

    הדבר הראשון שאנחנו צריכים לבצע זה להתחבר לגוגל פליי סרוויסס ששם בעצם נמצא הפיוז פרוביידר אז זה מתבצע כמובן על ידי הוספת דיפנדנסי בואו נלחץ על הלחצן להוספת דיפנדנסי נלך לאפ נלך לדיפנדנסיס דרך הפלוס לליברירי דיפנדנסי וכאן אנחנו רואים שיש כל מיני api של גוגל ואנחנו רוצים את הפליי סרוויסס

  7. 01:59

    נבצע אוקיי אוקיי והפרויקט מבצע עכשיו בנייה בכדי לשלב בתוכו את ה-API הזה. הדבר הבא שאנחנו צריכים לבצע זה להגדיר אובייקט פרייבט של גוגל API Client.

  8. 02:22

    ניצור אובייקט ממנו או רפרנס כאן וזה האובייקט שבעצם דרכו אנחנו ניגשים ל-API של גוגל ודרכו אנחנו משיגים את ה-Fused Provider או את ה-Location ליתר דיוק.

  9. 02:39

    הדבר הבא שאנחנו צריכים זה את ה-Location Request. זה אובייקט נוסף שמגדיר לפי מה אנחנו רוצים לקבל את המיקום. האם אנחנו רוצים לקבל אותו בעזרת קריטריון של High Accuracy או Power Saving, בדיוק דומה לקריטריון שעבדנו איתו בעבר.

  10. 03:03

    אז כאן אנחנו מגדירים סדרה של הגדרות לגבי איך להביא את המיקום וגם לגבי תוך כמה זמן לקבל את המיקום וכדומה. כעת אנחנו יכולים לגשת ל-on create וליצור את שני האובייקטים האלה פעם אחת.

  11. 03:20

    את google api client אנחנו יוצרים על ידי אובייקט חדש מסוג google api client אבל אנחנו משתמשים ב-builder לצורך כך. אז בואו ניגש לגוגל API Client נקודה בילדר, ניתן לבילדר דיס ועל ידי פונקציות בילד אנחנו בונים בעצם את ה-API בהתאם לצרכים שלנו.

  12. 03:48

    הפונקציה הראשונה שאנחנו קוראים לה נקראת Add Connection Callbacks. אנחנו שולחים דיס בשביל להירשם לאינטרפייס שמביא לנו את ה-Connection Callbacks. עכשיו, מה זה אומר?

  13. 04:03

    זה אומר שברגע שיש איזשהו שינוי בקונקשן עצמו מבחינת האם הוא זמין, האם הוא לא זמין, שינוי סטטוס של הקונקשן, לא של הלוקיישן של הקונקשן, אנחנו בעצם מקבלים דיווח על זה ויכולים לפי זה להציג הודעה וכדומה.

  14. 04:23

    הדבר הבא שאנחנו יכולים להירשם אליו זה Add on Connection Failed Listener. זה בעצם אינטרפייס אחר שאם יש איזושהי שגיאה בקונקשן אז אנחנו בעצם מקבלים דיווח דרכו. לאחר מכן אנחנו נרשמים ל-add API כאשר גוגל פליי סרוויסס כולל סדרה של API. מה שאנחנו רוצים לעשות זה לומר שאנחנו רוצים להירשם ולהשתמש ב-location Services.API ואז אנחנו אומרים ל-API של גוגל

  15. 05:03

    שזה בעצם ה-API שאנחנו רוצים ולא להשתמש בדברים אחרים כמו API לפרסומות או API למשחקים וכדומה. ולבסוף אנחנו קוראים לפונקציה build והנה יש לנו קודם כל את האובייקט של הגוגל API Client.

  16. 05:24

    כמובן שאנחנו עכשיו מקבלים פה שגיאה מפני שלא ירשנו את האינטרפייס אז בואו בשלב הזה פשוט נלך ונבצע אימפלמנט ואנחנו רוצים את google api client.connection callbacks זה בעצם הראשון והאינטרפייס השני שאנחנו רואים כאן שאנחנו מקבלים בעיה לגביו זה google api client.connection failed listener עכשיו כמובן שאנחנו צריכים לבצע

  17. 06:04

    בנייה של הפונקציות האלה אז בואו ניגש ל-Connection או ל-interface הראשון Alt Enter Implement Methods ואנחנו רואים שיש לנו מ-Connection Callbacks שתי פונקציות onConnected ו-onConnection Suspended ומה-interface onConnection פיילד ליסנר יש לנו פונקציה אחת onConnectionFailed

  18. 06:35

    אז בואו נבצע אוקיי ותכף נגיע לפונקציות האלה ונממש אותן. הדבר הבא שאני רוצה לעשות לפני שאני מממש את הפונקציות האלה לפני שאני בונה אותן בעצם זה לבנות אובייקט מהלוקיישן request אז בואו ניגש שוב פעם ל-onCreate לוקיישן request שווה new לוקיישן ריקווסט ואנחנו רוצים להגדיר כמה הגדרות בלוקיישן ריקווסט שהתפקיד שלו כאמור זה להגדיר פרופרטיז לגבי איך ומתי אנחנו

  19. 07:11

    רוצים לקבל את מיקום המשתמש. ההגדרה הראשונה תהיה לוקיישן ריקווסט נקודה סט אינטרוול והפונקציה הזאת פשוט אומרת כל כמה זמן אנחנו רוצים לקבל דיווח של המיקום. בואו ניתן 5 שניות.

  20. 07:31

    הדבר הבא שאנחנו יכולים להגדיר זה LocationRequest.SetFastestInterval מה ההבדל בין SetInterval ל-SetFastestInterval? SetInterval אנחנו הגדרנו כל כמה זמן אנחנו רוצים לקבל את הדיווחים על המיקום אבל הזמן הזה מבחינת ה-API של גוגל הוא לא מדויק זאת אומרת שזה יכול להיות יותר מ-5 שניות וזה יכול להיות פחות מ-5 שניות אז יכול להיות שאנחנו

  21. 08:03

    גם כל שלוש שניות לדוגמה או כל שתי שניות נקבל מהם דיווחים בגלל כל מיני שיקולים שלהם. Set Fastest Interval אומר מה המינימום זמן שצריך להמתין בכדי לקבל את הדיווח.

  22. 08:18

    מתחת לזה המערכת לא תדווח לנו, זאת אומרת שאם אנחנו מגדירים שלוש שניות אז אם קיבלנו עכשיו את הדיווח, הדיווח הבא יהיה מינימום עוד שלוש שניות או כמובן יותר, הוא יכול להיות גם 6 שניות, הוא יכול להיות 7 שניות, אבל המערכת לא תדווח לנו נניח כל 2 שניות את המיקום.

  23. 08:39

    אז זה בעצם ה-set fastest interval. הדבר הבא, Location Request ואנחנו צריכים את Set Priority. זה בעצם דומה לקריטריון חיפוש שדיברנו עליו.

  24. 08:52

    Location Request נקודה, ויש לנו פה כל מיני Priorities. לדוגמה בואו ניקח את Priority High Accuracy. אז כאן בעצם אנחנו רוצים קודם כל לפי רמת דיוק גבוהה, גוגל API יצטרכו קודם כל לבדוק אם אפשר לקבל את המיקום מה-GPS,

לקורס המלא: קורס פיתוח אפליקציות לאנדרואיד

ההרצאה הקודמת: Provider Fallback

ההרצאה הבאה: Location Settings Dialog

הרצאות קשורות מקורסים אחרים

  • הסבר על Provider ב-Flutter
  • הגדרת AWS provider - פרויקט NodeJS

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון