PracticU

The App Chooser

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › The App Chooser
מילון מושגים:
Intent - ב-Android, אובייקט הודעה שמבקש פעולה, למשל מעבר בין מסכים או הפעלת רכיב אחר.
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.

The App Chooser
מה קורה כשהמשתמש בוחר Always בחלונית ה-App Chooser, ואיך המפתח יכול לגרום להצגת החלונית בכל מקרה? השיעור ממשיך מדוגמת שליחת האימייל.
איך זה עובד
1. בחירת Always: אם המשתמש בוחר Always ב-Gmail, המערכת כבר לא תציג את ה-App Chooser, גם אחרי סגירה והפעלה מחדש של האפליקציה.
2. ביטול ההגדרה על ידי המשתמש: ב-Settings מאתרים את האפליקציה שהוגדרה כברירת מחדל (כאן Gmail) ולוחצים על Clear Defaults. אז החלונית חוזרת.
3. הצגה כפויה מהקוד: במקום startActivity עם האינטנט המקורי, יוצרים אינטנט נוסף בעזרת Intent.createChooser. מעבירים לו את האינטנט המקורי וכותרת שתוצג בחלונית, למשל choose email app, וקוראים ל-startActivity עם האינטנט החדש (שנקרא appChooserIntent).
4. התוצאה: בכל לחיצה מופיעה החלונית עם הכותרת, ואין למשתמש אפשרות Always.
פקודות והגדרות
- Intent.createChooser(intent, title)
- Shift-F6 לשינוי שם משתנה בכל המקומות (Rename).
אפשר עכשיו לחייב את הצגת ה-App Chooser, גם אם המשתמש קבע ברירת מחדל.
השיעור הבא בקורס: Send SMS

פרקי ההרצאה: The App Chooser

  1. 00:00

    מהו App Chooser

  2. 00:44

    מה קורה כשבוחרים Always

  3. 01:43

    איפוס ברירת המחדל ב-Settings

  4. 02:42

    הצגת ה-Chooser בכל מקרה

  5. 03:26

    Intent.createChooser עם כותרת

  6. 04:48

    בדיקה באמולטור ובמכשיר

תמלול ההרצאה: The App Chooser

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

  1. 00:02

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

  2. 00:25

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

  3. 00:38

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

  4. 00:53

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

  5. 01:12

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

  6. 01:41

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

  7. 02:01

    איך היוזר יכול לעשות את זה? מה שהוא צריך לעשות, אם הוא כמובן יודע איך עושים את זה, ולגשת ל-settings, ב-settings לחפש את כל האפליקציות, לאתר את האפליקציה הספציפית שהוא ביקש שהיא תהיה הדפולטית, במקרה הזה זה gmail, להיכנס אליה וללחוץ על הלחצן clear defaults.

  8. 02:26

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

  9. 02:41

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

  10. 02:53

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

  11. 03:14

    איך עושים את זה? במקום לקרוא ל-to start activity אנחנו צריכים לבנות כאן עוד אינטנט, והאינטנט הזה בואו נקרא לו app-צ'וזר.

  12. 03:31

    אנחנו רוצים לגשת ולבנות אינטנט מיוחד שיפעיל את האפ-צ'וזר. זה יהיה על ידי נקודה create chooser ואז אנחנו שולחים את האינטנט המקורי שלנו ושמקודם השתמשנו איתו בשביל להפעיל את האימפליסיט אינטנט, את האימפליסיט אקטיביטי ואנחנו יכולים לתת לו פה איזושהי כותרת שהוא יראה על ה-app chooser לדוגמה choose email app בצורה כזאת

  13. 03:55

    וזו הכותרת שהוא יראה על חלונית ה-app chooser. לאחר מכן אנחנו רוצים to start activity אבל לא לשלוח את האינטנט המקורי אלא לשלוח את האפצ'וזר שלנו.

  14. 04:22

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

  15. 04:48

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

  16. 05:05

    בואו ניגש למכשיר האמיתי ונלחץ על send email. ושימו לב שקיבלנו את האפ-צ'וזר שלנו,

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

ההרצאה הקודמת: Send Email

ההרצאה הבאה: Send SMS

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

  • הסבר על App Secrets
  • App Engine - Serverless - חלק 1
  • הסבר על Azure App Service
  • Build .NET app on Docker

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

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