PracticU

Send SMS

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

Send SMS
האינטנט המרומז (implicit intent) הבא מאפשר לפתוח מתוך האפליקציה אקטיביטי קיימת במכשיר לשליחת SMS, בלי לבנות מסך שליחה בעצמנו.
השלבים העיקריים
1. הגדרת ה-action: יוצרים אינטנט חדש ומגדירים לו setAction עם הערך action view, כדי לצפות באקטיביטי שמטפלת ב-SMS.
2. הגדרת ה-data כ-URI: באמצעות setData מעבירים URI שמתקבל מ-Uri.parse על המחרוזת "sms:" ואחריה מספר הטלפון, כדי לתאר את ה-resource של שליחת SMS.
3. הוספת תוכן ההודעה: מוסיפים putExtra עם המפתח sms_body והטקסט שרוצים לשלוח, כך שהוא יופיע מוכן בתוך האקטיביטי שתיפתח.
4. בדיקה לפני הפעלה: באמצעות getPackageManager וקריאה ל-intent.resolveActivity בודקים שיש במכשיר אקטיביטי שמסוגלת לטפל בבקשה.
5. הפעלה או הודעת שגיאה: אם קיימת אקטיביטי מתאימה קוראים ל-startActivity, ואם לא, מציגים Toast עם הודעה שאין אפליקציה שיכולה לשלוח SMS.
שימו לב
בדיקה על מכשיר אמיתי הראתה שלא כל מכשיר מגיע עם אפליקציית SMS מוגדרת למשתמש (למשל Hangouts שלא קונפג), כך שההתנהגות תלויה בתוכנות המותקנות באותו מכשיר ספציפי.
כעת ברור איך אפליקציה יכולה להפעיל אקטיביטי קיימת במכשיר לשליחת SMS בלי לממש את מסך השליחה בעצמה.
השיעור הבא בקורס: Open URL

פרקי ההרצאה: Send SMS

  1. 00:00

    שליחת SMS עם Implicit Intent

  2. 00:47

    מהו URI

  3. 01:46

    Uri.parse עם מספר הטלפון

  4. 02:42

    גוף ההודעה עם sms_body

  5. 03:27

    בדיקה עם PackageManager לפני ההפעלה

  6. 04:07

    שליחת ההודעה באמולטור

  7. 04:50

    הגדרת Hangouts במכשיר האמיתי

תמלול ההרצאה: Send SMS

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

  1. 00:02

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

  2. 00:20

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

  3. 00:39

    לאחר מכן אנחנו רוצים to set data. עכשיו, אנחנו ראינו בעבר שdata זה בעצם איזשהו לינק ראשי שאנחנו רוצים לפעול עליו. כאן אנחנו באמת רואים שפונקציית set data מקבלת URI.

  4. 00:56

    בואו רגע נבין מה זה בדיוק URI. יש לנו פה מאמר מוויקיפדיה שמדבר על URI, Uniform Resource Identifier, ומה שכתוב פה בשורה הראשונה זה In information technology a uniform resource identifier, כלומר URI is a string of characters used to identify a resource.

  5. 01:19

    זאת אומרת שזה לא בהכרח לינק לאיזשהו דף אינטרנט, זה יכול להיות איזושהי מחרוזת שתאפשר לנו בסך הכל לתאר איזשהו resource שנמצא על המחשב, ויכול להיות שכל מיני resources כאלה, כל מיני משאבים כאלה כמו שליחת אס.אם.אס או פנייה לקבצים מסוימים מתוארים על ידי מכרובת ספציפית שנחשבת URI.

  6. 01:49

    אז איך אנחנו עובדים עם זה? אנחנו פונים ל-uri.parse ואנחנו צריכים להכיר כמובן את אותה מכרוזת URI שמתארת שליחת אס.אם.אס והמכרובת הזאת היא פשוט sms.2 ואז מהו מספר הטלפון שאנחנו רוצים לשלוח אס.אם.אס אליו?

  7. 02:10

    בואו נגדיר נניח 052-1234567 סתם אני עושה פה איזשהו דמו כזה והנה יש לנו עכשיו data שהוא כאילו לינק אבל זה לא באמת לינק זה URI מכרוזת שמצביעה על resource שידוע בתוך המכשיר כ-resource לשליחת sms או תיאור sms.

  8. 02:31

    הדבר הזה כמובן מוגדר על ידי ה-activity שמצפה לקבל מידע לצורך שליחת sms ולכן אנחנו נצליח למצוא אותה במכשירים שניתן בהם לשלוח sms. אז בואו נגדיר עוד input extra, כי אנחנו צריכים עכשיו לתאר מהו ה-sms או הטקסט שאנחנו רוצים לשלוח.

  9. 02:53

    זה יהיה sms underline body, ו-hello, this is a text message, והנה יש לנו כאן את ההודעה שאנחנו רוצים לשלוח עבורה.

  10. 03:08

    הדבר הבא שאנחנו רוצים לעשות זה להגדיר את הפאקג' מנאג'ר שראינו בעבר. יש לנו פה את הפונקציה getPackageManager ועל ידי הפאקג' מנאג'ר הזה אנחנו פונים ל-intent resolveActivity הנה הפאקג' מנאג'ר בוא תגיד לנו אם אתה שונה מנ"ל זאת אומרת האם יש במכשיר הנוכחי אקטיביטי שמסוגלת לקבל את המידע הזה ולפיכך לשלוח אס-אם-אס.

  11. 03:42

    אם כן, Start Activity Intent, בואו תשלח לי בבקשה את האס-אם-אס. אם לא, אין במכשיר יכולת לשלוח אס-אם-אס. בואו ניקח את Toast, Make Text, ונרשום פה No App Which Can Send As-אם-אס ויש לנו פה את ה-Length Long ובואו נבדוק את זה.

  12. 04:11

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

  13. 04:26

    יש לנו כאן את המספר טלפון פה למעלה, יש כאן את ההודעה שאנחנו רוצים לשלוח, בואו נשלח והנה ההודעה נשלחה למספר הזה. בואו ניגש למכשיר האמיתי, נלחץ על הלחצן ואנחנו מקבלים הודעה שיש פה איזושהי בעיה to send sms with hangout turn on sms in settings, זאת אומרת יש כאן איזושהי תוכנה של hangout שמאפשרת לשלוח sms אבל היא לא

  14. 05:00

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

  15. 05:15

    אז ראינו שאפשר לשלוח sms זה פשוט תלוי במכשיר ומה בעצם ההגדרות שנמצאות במכשיר בשניהם כביכול

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

ההרצאה הקודמת: The App Chooser

ההרצאה הבאה: Open URL

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

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