
הטקסט המלא של הדקות הראשונות בהרצאה «Send SMS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
האימפליסיט אינטנט הבא שאנחנו הולכים לראות יאפשר לנו להציג אקטיביטי שדרכה נוכל לשלוח אס.אם.אס. אז יש לנו פה לחצן send אס.אם.אס ואנחנו רוצים בלחיצה עליו להציג איזושהי אקטיביטי מתאימה שתאפשר ליוזר לשלוח אס.אם.אס.
אז בואו נפתח אינטנט, יש לנו פה אינטנט חדש, בואו נגדיר לו set action, האקשן שאנחנו רוצים נקרא action view, אנחנו רוצים לצפות באקטיביטי הזאת שמאפשרת לשלוח סמס.
לאחר מכן אנחנו רוצים to set data. עכשיו, אנחנו ראינו בעבר שdata זה בעצם איזשהו לינק ראשי שאנחנו רוצים לפעול עליו. כאן אנחנו באמת רואים שפונקציית set data מקבלת URI.
בואו רגע נבין מה זה בדיוק URI. יש לנו פה מאמר מוויקיפדיה שמדבר על URI, Uniform Resource Identifier, ומה שכתוב פה בשורה הראשונה זה In information technology a uniform resource identifier, כלומר URI is a string of characters used to identify a resource.
זאת אומרת שזה לא בהכרח לינק לאיזשהו דף אינטרנט, זה יכול להיות איזושהי מחרוזת שתאפשר לנו בסך הכל לתאר איזשהו resource שנמצא על המחשב, ויכול להיות שכל מיני resources כאלה, כל מיני משאבים כאלה כמו שליחת אס.אם.אס או פנייה לקבצים מסוימים מתוארים על ידי מכרובת ספציפית שנחשבת URI.
אז איך אנחנו עובדים עם זה? אנחנו פונים ל-uri.parse ואנחנו צריכים להכיר כמובן את אותה מכרוזת URI שמתארת שליחת אס.אם.אס והמכרובת הזאת היא פשוט sms.2 ואז מהו מספר הטלפון שאנחנו רוצים לשלוח אס.אם.אס אליו?
בואו נגדיר נניח 052-1234567 סתם אני עושה פה איזשהו דמו כזה והנה יש לנו עכשיו data שהוא כאילו לינק אבל זה לא באמת לינק זה URI מכרוזת שמצביעה על resource שידוע בתוך המכשיר כ-resource לשליחת sms או תיאור sms.
הדבר הזה כמובן מוגדר על ידי ה-activity שמצפה לקבל מידע לצורך שליחת sms ולכן אנחנו נצליח למצוא אותה במכשירים שניתן בהם לשלוח sms. אז בואו נגדיר עוד input extra, כי אנחנו צריכים עכשיו לתאר מהו ה-sms או הטקסט שאנחנו רוצים לשלוח.
זה יהיה sms underline body, ו-hello, this is a text message, והנה יש לנו כאן את ההודעה שאנחנו רוצים לשלוח עבורה.
הדבר הבא שאנחנו רוצים לעשות זה להגדיר את הפאקג' מנאג'ר שראינו בעבר. יש לנו פה את הפונקציה getPackageManager ועל ידי הפאקג' מנאג'ר הזה אנחנו פונים ל-intent resolveActivity הנה הפאקג' מנאג'ר בוא תגיד לנו אם אתה שונה מנ"ל זאת אומרת האם יש במכשיר הנוכחי אקטיביטי שמסוגלת לקבל את המידע הזה ולפיכך לשלוח אס-אם-אס.
אם כן, Start Activity Intent, בואו תשלח לי בבקשה את האס-אם-אס. אם לא, אין במכשיר יכולת לשלוח אס-אם-אס. בואו ניקח את Toast, Make Text, ונרשום פה No App Which Can Send As-אם-אס ויש לנו פה את ה-Length Long ובואו נבדוק את זה.
אז הנה אנחנו רצים על המכשיר האמיתי והנה אנחנו רצים על האמולטור. בואו ניגש לאמולטור, נלחץ על הלחצן והנה אנחנו רואים שיש לנו אקטיביטי שנפתחת שמסוגלת לשלוח את ה-SMS.
יש לנו כאן את המספר טלפון פה למעלה, יש כאן את ההודעה שאנחנו רוצים לשלוח, בואו נשלח והנה ההודעה נשלחה למספר הזה. בואו ניגש למכשיר האמיתי, נלחץ על הלחצן ואנחנו מקבלים הודעה שיש פה איזושהי בעיה to send sms with hangout turn on sms in settings, זאת אומרת יש כאן איזושהי תוכנה של hangout שמאפשרת לשלוח sms אבל היא לא
בעצם מקונפגת עם איזשהו user ספציפי שמסוגל לשלוח sms, זאת אומרת שגם כן הייתה פה איזושהי תוכנה אבל צריך להכניס איזושהי קונפיגורציה של מספר טלפון או משהו כזה בתוך התוכנה הזאת.
אז ראינו שאפשר לשלוח sms זה פשוט תלוי במכשיר ומה בעצם ההגדרות שנמצאות במכשיר בשניהם כביכול