
application מוסיפים תגית receiver עם name של המחלקה (Android Studio מציעה את AirplaneModeReceiver אוטומטית). בתוכה intent-filter עם action של Airplane Mode. זה כבר הרישום.enabled שווה false) ו-Unregister פעיל.registerReceiver. יוצרים ComponentName של AirplaneModeReceiver.class, שמתאר את התגית במניפסט, ומקבלים PackageManager.setComponentEnabledSetting עם ה-ComponentName, עם COMPONENT_ENABLED_STATE_ENABLED ועם DONT_KILL_APP, כדי שהאפליקציה לא תיהרג בשינוי המניפסט.COMPONENT_ENABLED_STATE_DISABLED.new ComponentName(context, AirplaneModeReceiver.class)packageManager.setComponentEnabledSetting(componentName, state, PackageManager.DONT_KILL_APP)הטקסט המלא של הדקות הראשונות בהרצאה «Airplane Mode Receiver - Register via Manifest» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
קיימת עוד שיטה לבצע רג'יסטר ואן רג'יסטר לרכיב Broadcast Receiver והשיטה השנייה שקיימת היא דרך המניפסט. אז אני ממשיך מאותה הדוגמה שעשינו מקודם ואני בא למניפסט ואני מגדיר במניפסט בתוך תגית האפליקיישן תגית שנקראת Receiver.
ברגע שאנחנו עושים את זה, זה בעצם אוטומטית רישום ל-Broadcast Receiver הזה. קודם כל מה שאנחנו רואים זה שאוטומטית אנדרואיד סטודיו מציעה לנו את האיירפליין מוד רסיבר שבנינו.
היא כבר יודעת שזה הרסיבר היחיד שיש לנו בכל האפליקציה. מה שאנחנו צריכים לעשות זה לבנות את התגית של הרסיבר הזה עם ה-Name של השם של המחלקה שלנו, ואז לבנות את ה-Intent Filter בתוך התגית הזאת, ולהגדיר עבורו את ה-Action, ולחפש איירפליין והנה אנחנו רואים שיש לנו כבר איירפליין מוד וזה בעצם הרישום.
עכשיו אם אנחנו רשמנו את זה במניפסט אז הרישום הזה הוא אוטומטית, זאת אומרת שביידיפולט אנחנו כבר רשומים. לכן מה שאנחנו צריכים לעשות זה לשנות את ה-Enabled בלחצן הראשון ל-False ולשנות את ה-Enabled בלחצן השני ל-True, לפני שב-Default אנחנו קודם כל רשומים.
אז אם אנחנו מקסימום רוצים לעשות זה Unregister ו-Register מחדש. איך אנחנו אבל עושים Unregister ו-Register ל-Receiver שנרשם ב-Manifest?
אז בואו ניגש לקוד של ה-Java של הלחצנים ואנחנו רוצים לבצע את הרישום הפעם ואת החוסר רישום את הביטול הרישום כאשר יש לנו ב-Manifest את התגית של ה-receiver.
אז אנחנו צריכים להיפטר מהקוד הקודם ולהיפטר גם מהקוד הזה ולהגדיר את הפקודות הבאות. דבר ראשון, אנחנו רוצים לבנות אובייקט מסוג Component Name. Component Name זה פשוט איזשהו רכיב שמתאר איזושהי תגית מסוימת שנמצאת ב-Manifest, איזושהי תגית שנמצאת ב-Manifest.
אז בואו נגדיר new component name ונקבל את airplane-receiver.class ואוטומטית המערכת תמצא את התגית המתאימה מקובץ המניפסט. אנחנו רוצים את ה-package-manager שעשינו איתו שימוש בסרטונים קודמים, package-manager שווה get-package-manager והוא נותן לנו מידע על אפליקציות שנמצאות במחשב.
לאחר מכן אנחנו רוצים package-manager.set-component-enabled- settings ולתת את ה-component-name את ה-package-manager.component-enabled-state- enabled וזה בעצם מאפשר לנו להגדיר שה-component שנמצא במניפסט שאחראי על ה-AirplaneModeReceiver
כרגע הוא enabled. אנחנו צריכים לתת עוד איזה קבוע אחד שנקרא package-manager.don't-kill שב-by-default הוא לא יהרוג את האפליקציה כשאנחנו עושים איזשהו שינוי במניפסט.
לאחר מכן אנחנו יכולים את כל השורות האלה