Bluetooth Low Energy (BLE), שזמין ב-Android מגרסה 4.3 ואילך, יוצר חיבורים קצרים בין מכשירים כדי להעביר פרצי נתונים. ה-BLE נשאר במצב שינה כשהוא לא מחובר. כך, טכנולוגיית BLE מספקת רוחב פס נמוך יותר וצריכת אנרגיה מופחתת בהשוואה ל-Bluetooth קלאסי. BLE הוא אידיאלי לאפליקציות כמו מוניטור של קצב הלב או מקלדת אלחוטית. כדי להשתמש ב-BLE, צריך שלמכשירים יהיה ערכת שבבים שתומכת ב-BLE.
הטמעה
כל הפרופילים הנוכחיים של אפליקציות BLE מבוססים על פרופיל Generic Attribute (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 ולספק מיקום מדויק יותר. כך המשתמשים מפעילים את התכונה:
- עוברים אל הגדרות > אבטחה ומיקום > מיקום.
- בודקים שהמתג של המיקום מופעל/מושבת נמצא במצב מופעל.
- עוברים אל מצב.
- בוחרים במצב רמת דיוק גבוהה או במצב חיסכון בסוללה.
ב-Android מגרסה 11 ומגרסאות קודמות, אפליקציות צריכות הרשאות מיקום כדי להשתמש בסריקת BLE, גם אם הן סורקות רק כדי למצוא מכשירים להתחבר אליהם. אם המשתמש משבית את סריקת המיקום או לא מעניק לאפליקציה הרשאות מיקום, האפליקציה לא תקבל תוצאות של סריקת BLE.
ב-Android מגרסה 12 ואילך, ההרשאות BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE ו-BLUETOOTH_CONNECT מאפשרות לאפליקציות לסרוק מכשירים בקרבת מקום בלי לבקש הרשאת גישה למיקום. מידע נוסף זמין במאמר בנושא הרשאות Bluetooth.
המשתמשים יכולים להשבית את סריקת הרקע של Bluetooth ברמת המערכת. לשם כך, הם צריכים לעבור אל הגדרות > אבטחה ומיקום > מיקום > סריקה וללחוץ על המתג סריקת Bluetooth כדי להעביר אותו למצב מושבת. ההגדרה הזו לא משפיעה על סריקת BLE לאיתור מיקום או מכשירים מקומיים.
סינון תוצאות הסריקה
Android מגרסה 6.0 ואילך כולל סריקת BLE והתאמת מסננים בבקר Bluetooth. מכשיר יכול לסנן את תוצאות הסריקה ולדווח על אירועים של מכשירים שנמצאו ומכשירים שאבדו שקשורים למכשירי BLE למעבד האפליקציות (AP). הסינון פועל גם בסריקות אצווה, וכך עוזר לחסוך בחשמל כי המכשיר מעביר את סריקת ה-BLE לקושחה. סריקות אצווה מפחיתות את התדירות שבה נקודת הגישה מתעוררת בגלל סריקת BLE לאיתור מכשירים או משואות.
התכונה OnFound/OnLost מיושמת בבקר ה-Bluetooth ואז נבדקת כדי לוודא שמכשירי BLE לא נפסחים בסריקות. השימוש ב-Wi-Fi חוסך באנרגיה, ויש לו גם יתרונות נוספים:
- באירוע
OnFound, נקודת הגישה הראשית מתעוררת כשמתגלה מכשיר ספציפי. - באירוע
OnLost, נקודת הגישה מתעוררת כשלא ניתן למצוא מכשיר ספציפי. - אפליקציות של Framework מקבלות פחות התראות לא רצויות כשמכשיר בקרבת מקום נמצא בטווח.
- סריקות רציפות מאפשרות לאפליקציות של מסגרת העבודה לקבל התראה כשמכשיר נמצא מחוץ לטווח.
מסנן סריקה יכול להתבסס על גילוי של מודעות של מכשיר (האירוע OnFound). שכבת ה-Java יכולה לציין פרמטרים כמו first discovery (או מספר מודעות שצוין מאז הגילוי הראשון).
מטמיעים סינון BLE באמצעות הפקודה Advertising Packet Content Filter HCI.