
WallpaperChanger, שבוחרת תמונה אקראית מתוך מערך של תמונות ומחליפה את ה-wallpaper. הפעולה עלולה לזרוק exception, ולכן הקריאה עטופה ב-try/catch.uses-permission עבור SET_WALLPAPER.הטקסט המלא של הדקות הראשונות בהרצאה «הרשאות רגילות על אנדרואיד» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אז הדבר הראשון שאנחנו הולכים לראות זה מהו הטיפול עבור normal permissions, גם על לליפאפ וגם על מרשמלו. יש לנו כאן אפליקציה, יש לנו כאן לחצן ואיזשהו text view, ומה שאנחנו רוצים לעשות זה לשנות את ה-wallpaper של המכשיר.
ושינוי ה-wallpaper של המכשיר מצריך permission, אבל normal permission. אז קודם כל בואו נגדיר כאן איזה שהוא טקסט, change wallpaper, נגדיר כאן on click, button change wallpaper, underline on click, ובואו נגדיר את האירוע בקוד, ומה שיש לנו כאן זה איזה שהוא wallpaper changer, שזאת איזה
שהיא מחלקה, יש לנו כאן סדרה של תמונות, אנחנו יכולים לראות אותם כאן. ויש לנו פונקציה שנקרא Change Wallpaper, שכל מה שהיא עושה זה בעצם מקבלת איזשהו Wallpaper Manager, ומגרילה אינדקס עבור תמונה, מוצאת את ה-ID של התמונה לפי המערך הזה, ופשוט קובעת לשנות את ה-Wallpaper.
כמובן שהדבר הזה זורק חריגה, אז הנה תיארנו פה חריגה מהפונקציה. ובמניפסט עדיין אין לנו שום פרמישן, אנחנו רוצים לראות מה קורה אם אנחנו לא מגדירים אפילו במניפסט את הנורמל פרמישן ומשתמשים ביכולת הזאת מבלי לבקש את הפרמישן, את זה אנחנו כאמור רוצים לראות גם על לליפאפ וגם על מרשמלו
אם אנחנו רואים את זה על לליפאפ זה כמובן תקף לכל מה שהיה לפני ומרשמלו יתקף כנראה מעכשיו עד מה שיש אחרי אלא אם כן ישנו את הפרמישן וורקפלו אז בואו נגדיר כאן wallpaper change, changer נקודה change wallpaper ובגלל שהפונקציה הזאת זורקת חריגה אז אנחנו צריכים להגדיר פה איזשהו try
catch ובתוך ה-catch אנחנו רוצים לתפוס את ה-exception ואנחנו רוצים להציג את ה-exception יש לנו פה text view message, set text ובואו נציג את ה-message של ה-exception ואם הכל בסדר, בואו נכתוב בתוך ה-TextView Message את המחרוזת Wallpaper has been successfully changed.
אוקיי, אז יש לנו כאן את הקוד שפשוט משנה את ה-Wallpaper. כל הקוד כבר מוכן ואנחנו רוצים להריץ ולבדוק את זה. לפני שנריץ, בואו נסתכל רגע באמת שהמכשיר האמיתי שלנו, מה היא בדיוק הגרסה שלו.
בואו ניגש ל-Settings, נחפש כאן About Tablet, ואנחנו רוצים להיכנס ל-Version Information, ולראות שאנחנו גרסת 5, 5.0, 5.1 וכל ה-5.x האלה, זה גרסת לליפאפ, וזה בעצם המכשיר האמיתי שלנו.
בואו נצא ונסתכל מה קורה באמולאטור, באמולאטור ניכנס ל-Settings, נחפש כאן ב-Settings גם כן את ה-Versioning Information, הנה זה, About Phone, ניכנס, והנה אנחנו רואים כאן Android Version 6.0 ו-6.משהו זה בעצם גרסת מרשמלו, גם כמובן 7, זה גרסה חדשה יותר ממרשמלו, מה נקרא נוגט.
ואנחנו רוצים לנסות את זה גם על ה-workflow הזה וגם על ה-workflow הזה. אז בואו ניגש ונריץ את האפליקציה, והיא נהירצה על האמולטור וגם על המכשיר האמיתי, וכאמור אין לנו כרגע את ההרשאה הדורשה במניפסט, ואנחנו פשוט לוחצים על הלחצן קודם כל במכשיר האמיתי ב-Lollipop, ואנחנו רואים שיש לנו פה exception, access denied to process,
זה ה-ID של הפרוסס, must have permission, android, permission, set wallpaper, בואו נבצע את זה גם על Marshmallow, ונקבל את אותו הדבר, ומה שקרה כאן זה פשוט exception, המערכת קרסה, ולכן הגענו לקאץ' ופשוט הצגנו את הודעת השגיעה.
בואו ניגש עכשיו לאנדרויד מניפסט ופשוט נרשום Use as Permission ויש לנו Wallpaper,