מכיוון שהטלפוניה היא ערוץ תקשורת פתוח כל כך – כל אחד יכול להתקשר, או שלחו הודעת טקסט לכל מספר בכל זמן - משתמשי Android זקוקים ליכולת לחסום בקלות שיחות והודעות טקסט לא רצויות.
לפני Android 7.0, משתמשי Android היו צריכים להסתמך על אפליקציות שהורדו כדי להגביל את השיחות הודעות טקסט ממספרי טלפון מטרידים. הרבה מהאפליקציות האלה לא פועלות כמו הרצויות או מספקות חוויה לא אידיאלית, כי אין ממשקי API מתאימים לחסימת שיחות והודעות.
חלק מהיצרנים עשויים לשלוח פתרונות חסימה משלהם, אך אם משתמשים ישלימו מכשיר, הם עלולים לאבד לחלוטין את רשימת המכשירים החסומים בגלל חוסר ביכולת הפעולה ההדדית. לבסוף, גם אם המשתמשים משתמשים באפליקציות חיוג ללקוחות להעברת הודעות שמספקים פונקציונליות כזו, סביר להניח שהם עדיין יצטרכו צריך לבצע את פעולת החסימה בכל אפליקציה כדי שהחסימה תיושם בשני המקומות שיחות והודעות טקסט.
תכונות
גרסת Android 7.0 כוללת תוכן של BlockedNumberProvider
ספק שמאחסן רשימה של מספרי טלפון שהמשתמש ציין
ליצור איתם קשר באמצעות תקשורת טלפוניה (שיחות, SMS, MMS).
המערכת תכבד את המספרים שברשימה החסומים על ידי הגבלת השיחות
הודעות טקסט מהמספרים האלה. ב-Android 7.0 מוצגת רשימת המספרים החסומים
מאפשרת למשתמש להוסיף ולהסיר מספרים.
כמו כן, התכונה של חסימת מספרים מפעילה את המערכת ואת האפליקציות הרלוונטיות לפלטפורמה לעבוד יחד כדי להגן על המשתמש וכדי לפשט את השימוש חוויה אישית. חייגן ברירת המחדל, לקוח העברת ההודעות שמוגדר כברירת מחדל, אפליקציה שיש לה הרשאות UICC, ואפליקציות עם אותה חתימה שהמערכת יכולה לקרוא ישירות לכתוב לרשימת החסומים. בגלל שהמספרים החסומים מאוחסנים במערכת, המספרים נשארים ללא קשר לאפליקציות החיוג או העברת ההודעות שבהן המשתמש משתמש חסמת. לסיום, ניתן יהיה לשחזר את רשימת המספרים החסומים בכל מכשיר חדש, ללא קשר ליצרן.
- המשתמש יקבל תכונה לחסימה שתעבוד מיד, ולא יאבד את רשימת החסימות שלו כשיעביר את השיחות לאפליקציה אחרת או יקבל טלפון חדש. הכול אפליקציות רלוונטיות במערכת יכולות לשתף את אותה רשימה כדי לספק למשתמש את החוויה היעילה ביותר.
- מפתחי אפליקציות לא צריכים לפתח דרך משלהם לנהל רשימת חסימה ואילו שיחות והודעות נכנסות. הם יכולים פשוט להשתמש תכונה שמספקת פלטפורמה.
- אפליקציות חייגן / מס' אפליקציות שנבחרו כברירת המחדל על ידי המשתמש
לקרוא ולכתוב לספק. אפליקציות אחרות יכולות להפעיל את הניהול של רשימת החסימות
ממשק משתמש באמצעות
createManageBlockedNumbersIntent()
- יצרני ציוד מקורי יכולים להשתמש בתכונה שמסופקת על ידי הפלטפורמה כדי לשלוח תכונת חסימה יצירתי. יצרני ציוד מקורי יכולים להיות בטוחים שכאשר משתמשים עוברים מיצרן ציוד מקורי אחר כי יש להם חוויה טובה יותר בתהליך ההצטרפות, מפני שרשימת החסימות יועברו גם הם.
- אם לספק יש אפליקציית חיוג או אפליקציית הודעות משלו, הוא יכול להשתמש שוב בתכונה של הפלטפורמה כדי לאפשר למשתמש לנהל רשימת חסימה. הם יכולים להיות רגועים שרשימת החסימה של המשתמש יכולה להישאר אצל המשתמשים, גם כשהם מקבלים במכשיר. לבסוף, כל האפליקציות שיש להן הרשאות ספק יכולות לקרוא את רשימת החסימות, כך שאם הספק רוצה לספק למשתמש חסימה נוספת וחזקה יותר על סמך רשימת החסימות, שאפשר להשתמש בה עכשיו באמצעות התכונה הזו.
זרימת נתונים
דוגמאות ומקור
הנה דוגמה לשיחות באמצעות התכונה החדשה לחסימת מספרים:
הפעלת מנהל המספרים החסום מהאפליקציה
Context.startActivity(telecomManager.createManageBlockedNumbersIntent(), null);
שאילתה לגבי מספרים חסומים
Cursor c = getContentResolver().query(BlockedNumbers.CONTENT_URI, new String[]{BlockedNumbers.COLUMN_ID, BlockedNumbers.COLUMN_ORIGINAL_NUMBER, BlockedNumbers.COLUMN_E164_NUMBER}, null, null, null);
Put blocked number
ContentValues values = new ContentValues(); values.put(BlockedNumbers.COLUMN_ORIGINAL_NUMBER, "1234567890"); Uri uri = getContentResolver().insert(BlockedNumbers.CONTENT_URI, values);
מחיקת המספר החסום
ContentValues values = new ContentValues(); values.put(BlockedNumbers.COLUMN_ORIGINAL_NUMBER, "1234567890"); Uri uri = getContentResolver().insert(BlockedNumbers.CONTENT_URI, values); getContentResolver().delete(uri, null, null);
הטמעה
אלו המשימות ברמה גבוהה שצריך לבצע כדי להשתמש בתכונה של חסימה של מספרים:
- יצרני ציוד מקורי מטמיעים תכונות של הגבלת שיחות/הודעות במכשירים שלהם באמצעות
BlockedNumberProvider
- אם לספק יש אפליקציית חייגן או אפליקציית הודעות, הטמעת שיחה או הודעה
הגבלת תכונות באמצעות
BlockedNumberProvider
- ספקי צד שלישי של אפליקציות חייגנים והעברת הודעות משתמשים
BlockedNumberProvider
בתכונות החוסמות שלו
המלצות ליצרני ציוד מקורי
אם המכשיר מעולם לא נשלח יחד עם שיחות או הודעות נוספות בתכונות של הגבלה, השתמשו בתכונה לחסימת מספרים שבקוד הפתוח של Android להקרין (AOSP) בכל המכשירים האלה. מומלץ להזין ערך סביר נקודות לחסימה, כמו חסימת מספר ישירות מהשיחה ביומן או בשרשור הודעות.
אם המכשיר כבר שלח בעבר עם תכונות של הגבלת שיחות או הודעות,
להתאים את התכונות כך שכל מספרי הטלפון בהתאמה מחמירה ייחסמו
מאוחסנים ב-BlockedNumberProvider,
ושההתנהגות
שהספק יענה על הדרישות לתכונה הזו שמפורטות
מסמך הגדרת התאימות של Android (CDD).
ניתן להטמיע כל תכונה מתקדמת אחרת דרך ספקים מותאמים אישית וממשק משתמש בהתאמה אישית / אמצעי בקרה, כל עוד דרישות ה-CDD עומדות בדרישות חסימת מספרי טלפון בהתאמה מחמירה. מומלץ שתכונות אחרות מתויגות כ'תכונות מתקדמות', כדי למנוע בלבול עם התכונות הבסיסיות לחסימת מספרים.
ממשקי API
אלו ממשקי ה-API שנמצאים בשימוש:
TelecomManager API
Intent createManageBlockedNumbersIntent()
Carrier Config
KEY_DURATION_BLOCKING_DISABLED_AFTER_EMERGENCY_INT
- אפשר לעיין במאמר
BlockedNumberContract
- ממשקי ה-API סופקו על ידי
BlockedNumberContract
boolean isBlocked(Context context, String phoneNumber)
int unblock(Context context, String phoneNumber)
boolean canCurrentUserBlockNumbers(Context context)
- ממשקי ה-API סופקו על ידי
ממשק משתמש
אפשר להשתמש בממשק המשתמש BlockNumbersActivity.java שסופק ב-AOSP בתור היא. מטמיעי מכשירים יכולים גם להטמיע גרסה משלהם של ממשק המשתמש, כל עוד עומד בדרישות של CDD שקשורות ל-CDD.
לתשומת ליבך, יכול להיות שיהיה צורך באפליקציית המחשב של השותף לגיבוי ולשחזור
כדי ליישם שחזור של רשימת החסימות באמצעות
BlockedNumberProvider
בתמונות שלמטה אפשר לראות את החסימה של
וממשק מספרים שמסופק ב-AOSP.
אימות
מטמיעי אפליקציות יכולים לוודא שהגרסה של התכונה פועלת כצפוי על ידי מפעיל את בדיקות ה-CTS הבאות:
android.provider.cts.BlockedNumberContractTest com.android.cts.numberblocking.hostside.NumberBlockingTest android.telecom.cts.ExtendedInCallServiceTest#testIncomingCallFromBlockedNumber_IsRejected android.telephony.cts.SmsManagerTest#testSmsBlocking
אפשר לשנות את השדה BlockedNumberProvider
באמצעות פקודות adb
אחרי הרצה של $ adb root
. לדוגמה:
adb root
adb shell content query --uri content://com.android.blockednumber/blocked
adb shell content insert --uri / content://com.android.blockednumber/blocked --bind / original_number:s:'6501002000'
adb shell content delete --uri / content://com.android.blockednumber/blocked/1