השתלמות
"אנדרואיד – פרויקט לבגרות"
מנחה: זאב פריימן
BroadcastReceiver:
מנגנון זיהוי ותגובות
על מידע שמופץ על ידי
אפליקציות אחרות,
אבל בעיקר – על ידי מערכת
BroadcastReceiver
BroadcastReceiver
במערכת Android מושג "שידור" (broadcast)
מציין תהליך שליחה/קבלה מידע על אירועים במערכת או באפליקציות.
דוגמאות לאירועי מערכת:
חיבור/ניתוק WiFi, הפעלה/כיבוי "מצב טיסה",
SMS או שיחת טלפון נכנסת, סיום הורדת קובץ,
הפעלת מכשיר שהיה מכובה...
שידור אקטיבי – קליטה לא חובה
BroadcastReceiver
:
BroadcastReceiver
למימוש "שידור" (broadcast)
מערכת (אפליקציה) משתמשים ב-Intent,
אלא שהפעם מדובר ב"שליח" שאינו מיועד לאקטיביטי מסוימת או לפעולה כלשהי.
זה לא Intent המכוון ליעד מסוים
(אקטיביטי או פעולה)
:
BroadcastReceiver
זה לא Intent המכוון ליעד מסוים
(אקטיביטי או פעולה)
Intent של "שידור"
יכולה לקבל כל אפליקציה הקיימת במכשיר, אבל בתנאי, שיש באפליקציה
"מקלט שידור"
BroadcastReceiver
BroadcastReceiver
"מקלט שידור" (broadcast receiver)
הוא מנגנון היודע לזהות קיום המידע הנשלח
דרך "שידור" ולהגיב על קבלתו.
באופן "טכני"
מדובר במחלקה אשר מכילה פעולות ופקודות
אשר יכולות להגיב על "שידור" מסויים
(Intent של broadcast)
BroadcastReceiver
"מקלט שידור" באפליקציה דורש:
יוצרים מחלקה אשר יורשת
ממחלקת מערכת BroadcasrReceiver
BroadcastReceiver
BroadcastReceiver
בניית ה"מקלט" בדרך זאת מבצעת
גם בניה אוטומטית כמחלקה יורשת
וגם עושה רישום אוטומטי ב-AndroidManifest
בבניית המחלקה מתווספת אליה
פעולת חובה
אשר מופעלת באופן אוטומטי,
כאשר "מקלט" רשום ואפליקציה מזהה "שידור"
BroadcastReceiver
פעולה onReceive
צריכה להכיל סימום פעולות ושימוש בפקודות
המיועדות לביצוע תגובת האפליקציה
לקליטת ה"שידור"
BroadcastReceiver
על מנת להעביר "מקלט" למצב פעיל
יש לבצע פעולת "רישום"
BroadcastReceiver
דוגמה ל"מסנן" שידורים:
הפעם "מקלט" יגיב לשיחה נכנסת
על מנת להעביר "מקלט" למצב לא פעיל
יש "לבטל" "רישום"
BroadcastReceiver
יש מספר דרכים לבצע פעולות
"רישום" וגם "ביטול רישום"
של "מקלט שידור".
אחת מהנפוצות ביות היא:
BroadcastReceiver
אחת מהנפוצות ביות היא:
BroadcastReceiver
"מעגל חיים"
של אקטיביטי
BroadcastReceiver
כמובן, שאפשר לעשות "רישום/ביטול"
גם בדרכים כבר מוכרות,
למשל, ע"י לחיצת על לחצן,
בחירת אחד מ"לחצני רדיו",
דרך תפריט,
ע"י שינוי מצב הרכיב (switch)
BroadcastReceiver
אפשר לבצע "רישום/ביטול"
באופן אוטומטי בלי להודיע על כך למשתמש,
אפשר להשאיר בחירה למשתמש,
אפשר לבצע אוטומטי ולהודיע למשתמש...
כל אופציות פתוחות וניתנות לשיקול דעת
של תלמיד
BroadcastReceiver
מה שיהיה בתוך מחלקה
של "קולט שידור",
תלוי על אזה "שידור" מחלקה צריכה להגיב.
באותה אפליקציה מותר לכלול
מספר לא מוגבל
של "מקלטי שידור" שונים
BroadcastReceiver
אישורים – permission
ברב המקרים צריך לרשום אותם
גם בקובץ AndroidManifest...
BroadcastReceiver
אישורים – permission
... וגם בקבצי אקטיביטי (java)
BroadcastReceiver