Bluetooth עם צריכת אנרגיה נמוכה (BLE)

Bluetooth עם צריכת אנרגיה נמוכה (BLE), שזמין ב-Android מגרסה 4.3 ואילך, יוצר חיבורים קצרים בין מכשירים כדי להעביר רצפי נתונים. BLE נשאר במצב שינה כשהוא לא מחובר. כך BLE יכול לספק רוחב פס נמוך יותר וצריכת חשמל נמוכה יותר בהשוואה ל-Bluetooth הקלאסי. היא אידיאלית לאפליקציות כמו מוניטור דופק או מקלדת אלחוטית. כדי להשתמש ב-BLE, נדרשת ערכת שבבים שתומכת ב-BLE.

הטמעה

כל הפרופילים הקיימים של אפליקציות BLE מבוססים על פרופיל המאפיינים הכללי (GATT). כשמכשיר Android מקיים אינטראקציה עם מכשיר BLE, המכשיר ששולח מידע הוא השרת והמכשיר שמקבל את המידע הוא הלקוח. Android כולל ממשקי API למפתחים של BLE, כולל ממשקי API לאינטראקציות בין שרתי GATT לבין לקוחות GATT. כדי להפיק את המקסימום מממשקי ה-API של BLE, צריך להטמיע את הדרישות של Android Bluetooth HCI.

מצבי המכשיר

כשמשתמשים ב-BLE, מכשיר Android יכול לשמש כציוד היקפי, כמכשיר מרכזי או גם וגם. מצב היקפי מאפשר למכשירים לשלוח חבילות מודעות. מצב מרכזי מאפשר למכשירים לבצע סריקה לאיתור מודעות. מכשיר Android שפועל גם ציוד היקפי וגם מכשיר מרכזי יכול לתקשר עם ציוד היקפי אחר מסוג BLE בזמן שליחת מודעות במצב היקפי. במכשירים שתומכים ב-Bluetooth 4.1 וגרסאות קודמות, אפשר להשתמש ב-BLE רק במצב מרכזי. יכול להיות שערכות שבבים ישנות יותר של מכשירים לא תומכות במצב ציוד היקפי מסוג BLE.

סריקת BLE

מכשיר Android יכול לטרגט ולסרוק מכשירי Bluetooth ספציפיים בצורה יעילה יותר באמצעות BLE. ממשקי API של BLE מאפשרים למפתחי אפליקציות ליצור מסננים כדי למצוא מכשירים עם פחות מעורבות של בקר המארח.

סריקת מיקומים

שירותי המיקום של המכשיר יכולים להשתמש ב-Bluetooth כדי לזהות איתותי Bluetooth ולספק מיקום מדויק יותר. כך המשתמשים מפעילים את התכונה:

  1. עוברים אל הגדרות > אבטחה ומיקום > מיקום.
  2. מוודאים שהמתג מופעל/כבוי נמצא במצב מופעל.
  3. עוברים אל מצב.
  4. בוחרים במצב רמת דיוק גבוהה או במצב חיסכון בסוללה.

ב-Android מגרסה 11 ומטה, אפליקציות מסוימות מחייבות הרשאות מיקום כדי להשתמש בסריקת BLE, גם אם הן מבצעות סריקה רק כדי למצוא מכשירים להתחבר אליהם. אם המשתמש משבית את סריקת המיקום או לא מעניק הרשאות מיקום לאפליקציה, האפליקציה לא תקבל תוצאות של סריקת BLE.

במכשירי Android 12, ההרשאות של BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE ו- BLUETOOTH_CONNECT יכולות לאפשר לאפליקציות לבצע סריקה לאיתור מכשירים בקרבת מקום בלי לבקש את הרשאת המיקום. מידע נוסף זמין במאמר הרשאות Bluetooth חדשות ב-Android 12.

המשתמשים יכולים להשבית את סריקת הרקע של Bluetooth ברמת המערכת על ידי מעבר אל הגדרות > אבטחה ומיקום > מיקום > סריקה והשבתה של המתג עבור סריקת Bluetooth. אין לכך השפעה על סריקת BLE לאיתור מיקום או מכשירים מקומיים.

סינון תוצאות הסריקה

Android מגרסה 6.0 ואילך כולל סריקת BLE והתאמת מסננים בבקר Bluetooth. מכשיר יכול לסנן את תוצאות הסריקה ולדווח למעבד האפליקציות (AP) על אירועים שנמצאו ואבדו שקשורים למכשירי BLE. הסינון פועל גם בסריקות בכמות גדולה, שעוזרת לחסוך בחשמל בזמן שסריקת BLE מוסרת בקושחה. סריקות בכמות גדולה מפחיתות את התדירות שבה נקודת האינטרנט מתעוררת בגלל סריקת BLE לאיתור מכשירים או איתות Bluetooth.

התכונה OnFound/OnLost מוטמעת בבקר Bluetooth ולאחר מכן נבדקת כדי לאשר שלא חסרים מכשירי BLE בסריקות. כך ניתן לחסוך בחשמל וליהנות גם מהיתרונות הבאים:

  • במקרה של אירוע OnFound, נקודת הגישה הראשית יוצאת ממצב שינה כשמוצאים מכשיר ספציפי.
  • במקרה של אירוע OnLost, נקודת הגישה מתעוררת כשלא ניתן למצוא מכשיר ספציפי.
  • אפליקציות Framework מקבלות פחות התראות לא רצויות כשמכשיר בקרבת מקום נמצא בטווח.
  • סריקות רצופות מאפשרות לאפליקציות framework לקבל התראה כשמכשיר נמצא מחוץ לטווח.

מסנן הסריקה יכול להתבסס על גילוי מודעות במכשיר (האירוע OnFound). שכבת Java יכולה לציין פרמטרים כמו הגילוי הראשון (או מספר מסוים של מודעות מאז הגילוי הראשון). אפשר להטמיע סינון BLE באמצעות הפקודה HCI של מסנן התוכן של חבילת הפרסום.