שירותי Bluetooth

באמצעות Bluetooth, מכשירים יכולים לשדר נתונים שאפשר להשתמש בהם לשירותים אינטראקטיביים כמו אודיו, הודעות וטלפון. פרופילי ה-Bluetooth שמשמשים לשירותים שונים נמצאים בקובץ include/hardware/bluetooth.h.

אודיו

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

בקרת עוצמת קול מוחלטת

ב-Android 6.0 ואילך, מקבץ ה-Bluetooth של Android מאפשר למקור להגדיר עוצמה מוחלטת, ומעניק למשתמשים שליטה מדויקת בעוצמת האודיו. מכשיר המקור שולח אודיו ללא הפחתה ומידע על עוצמת הקול למכשיר היעד. לאחר מכן, ה-sink מגביר את האודיו בהתאם למידע על עוצמת הקול, כדי שהמשתמשים ישמעו עוצמת שמע מדויקת.

מכשיר המקור יכול גם לרשום התראות על עוצמת קול. כשמשנים את עוצמת הקול באמצעות הפקדים ב-sink, ה-sink שולח התראה למקור. כך המקור יכול להציג בצורה מדויקת את נתוני הנפח בממשק המשתמש.

בקרת עוצמת קול מוחלטת מופעלת כברירת מחדל. כדי להשבית את בקרת עוצמת הקול המוחלטת, המשתמשים יכולים לעבור אל הגדרות > מערכת > אפשרויות למפתחים ולבחור באפשרות השבתה של עוצמת קול מוחלטת.

קודיקים מתקדמים של אודיו

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

הטמעה

במכשירים עם Android מגרסה 8.0 שתומכים ב-A2DP, התמיכה בקודקים הנוספים מופיעה באופן אוטומטי. יצרני המכשירים עשויים להידרש לקבל רישיונות נפרדים ו-blobs בינאריים לחלק מקודקי האודיו הקנייניים. בנוסף ל-SBC, ב-Android 8.0 יש תמיכה בקודקים הבאים:

  • קובץ AAC
  • aptX
  • aptX HD
  • LDAC

יצרני המכשירים יכולים לבחור באילו קודקים המכשירים שלהם ינסו להשתמש קודם. כדי להגדיר את העדיפויות של הקודקים, משנים את הערכים הבאים ב- res/values/config.xml:

  <!-- Configuring priorities of A2DP source codecs. Larger value means
          higher priority. Value -1 means the codec is disabled.
          Value 0 is reserved and should not be used here. Enabled codecs
          should have priorities in the interval [1, 999999], and each
          priority value should be unique. -->
        <integer name="a2dp_source_codec_priority_sbc">1001</integer>
        <integer name="a2dp_source_codec_priority_aac">2001</integer>
        <integer name="a2dp_source_codec_priority_aptx">3001</integer>
        <integer name="a2dp_source_codec_priority_aptx_hd">4001</integer>
        <integer name="a2dp_source_codec_priority_ldac">5001</integer>
      

אישור LDAC

פרויקט Android Open Source כולל מקודד לקודק LDAC של Sony, כך שאין צורך ברישיון או ב-blob נפרדים מ-Sony. כדי לשלב את הקודק LDAC במכשיר, צריך להירשם ל-Sony ולפעול לפי תהליך האישור של LDAC.

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

תכונות ממשק המשתמש

בנוסף לתמיכה בקודקים נוספים, ב-Android 8.0 יש הגדרה שזמינה למשתמש, שמאפשרת להשבית קודקי אודיו ב-Bluetooth ברזולוציה גבוהה (HD).

  1. עוברים אל הגדרות > מכשירים מחוברים > Bluetooth.
  2. מקישים על סמל גלגל השיניים לצד ה-sink שרוצים להשבית עבורו את הקודקים.
  3. מבטלים את הסימון של התיבה אודיו באיכות HD.

יצרני מכשירים שמתאימים אישית את ההגדרות צריכים להטמיע דרך שבה המשתמשים יוכלו להשבית קודיקים של HD.

העברת הודעות

שליחת הודעות דרך Bluetooth מאפשרת למשתמשים לקרוא, לעיין ולכתוב הודעות SMS ממכשיר מרוחק. היכולת הזו משמשת בדרך כלל כשמחברים טלפון למערכת מידע ובידור ברכב.

טלפוניה

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

ב-Android 8.0, Bluetooth תומך בחיבור בתחום התדרים של צלצול. כשמתקבלת שיחה נכנסת בטלפון שמחובר באמצעות Bluetooth, צלצול הטלפון מופעל ב-Sink. מפעילים את האפשרות Enable in-band ringing (הפעלת צלצול בתחום התדרים הנדרש) בקטע הגדרות > מערכת > אפשרויות למפתחים.

תכונות Bluetooth

כדי להטמיע את שירותי ה-Bluetooth, מקבץ ה-Bluetooth תומך במגוון פרופילים ותכונות.

פרופילים של Bluetooth

הפרופילים הבאים זמינים ל-Bluetooth:

תכונה גרסת Android
שם תיאור 6.0 7.0 7.1 7.1.2 8.0
SAP פרופיל גישה לכרטיס SIM 1.1 1.1 1.1 1.1 1.1
MAP פרופיל גישה להודעות ל-SMS 1.2 1.2 1.2 1.2 1.2
OPP פרופיל לדחיפת אובייקטים 1.1 1.1 1.1 1.1 1.2
OBEX על L2CAP OBject EXchange over Logical Link Control and Adaptation Protocol כן כן כן כן כן
HFP Audio Gateway פרופיל הפעלה קולית 1.6 1.6 1.7 1.7 1.7
HSP פרופיל אוזניות 1.2 1.2 1.2 1.2 1.2
A2DP Advanced Audio Distribution Profile 1.2 1.2 1.2 1.2 1.2
AVRCP Audio/Video Remote Control Profile 1.3 1.3 1.3 1.3 1.4
HID פרופיל של מכשיר עם ממשק משתמש 1.0 1.0 1.0 1.0 1.0
PBAP פרופיל הגישה לספר הטלפונים 1.1.1 1.1.1 1.1.1 1.1.1 1.2
HDP פרופיל מכשיר הבריאות 1.0 1.0 1.1 1.1 1.1
SPP Serial Port Profile 1.2 1.2 1.2 1.2 1.2
PAN / BNEP פרופיל לרשת אזור אישית (PAN) / פרוטוקול אנקפסולציה של רשת Bluetooth 1.0 1.0 1.0 1.0 1.0
DIP פרופיל מזהה המכשיר 1.3 1.3 1.3 1.3 1.3
HOGP 1.0 HID על גבי GATT כן כן כן כן כן
אודיו באיכות HD1 מידע נוסף זמין בקטע 'קודקים מתקדמים של אודיו' שלמעלה לא לא לא לא כן

1 הטמעת אודיו באיכות HD תלויה ביכולות המכשיר, גם במקור וגם בזרם היעד.

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

התכונות הבאות זמינות ב-BLE:

תכונה גרסת Android
שם 6.0 7.0 7.1 7.1.2 8.0
חיבורים מאובטחים מסוג BR/EDR 4.1 4.1 4.1 4.1 5.0
LE Privacy ‫4.2 ‫4.2 ‫4.2 ‫4.2 5.0
חיבורים מאובטחים של LE ‫4.2 ‫4.2 ‫4.2 ‫4.2 5.0
Data Packet Extensions ‫4.2 ‫4.2 ‫4.2 ‫4.2 5.0
מזהי UUID של 32 ביט כן כן כן כן כן
Dual Mode LE Central/Peripheral כן כן כן כן כן
מצב LE Peripheral כן כן כן כן כן
דרישות Google HCI כן כן כן כן כן
ערוצים שמתמקדים בחיבור ב-LE לא לא לא לא לא