הגדרת Bluetooth

כדי שהאפליקציה תוכל לתקשר באמצעות Bluetooth או Bluetooth עם צריכת אנרגיה נמוכה, עליך לוודא ש-Bluetooth נתמך במכשיר. אם כן, צריך לוודא שהיא מופעלת. שימו לב שהבדיקה הזו נדרשת רק אם המאפיין android:required ברשומת קובץ המניפסט <uses-feature.../> הוא מוגדר ל-false.

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

השלב הראשון הוא הוספת הרשאות Bluetooth לקובץ המניפסט כדי להשתמש בממשקי ה-API הבאים.

לאחר קבלת ההרשאות, הגדרת Bluetooth מתבצעת בשני שלבים. באמצעות BluetoothAdapter:

  1. להורדת BluetoothAdapter.

    BluetoothAdapter נדרש לכל פעילות ב-Bluetooth. BluetoothAdapter מייצג את מתאם ה-Bluetooth של המכשיר רדיו Bluetooth). כדי לקבל BluetoothAdapter, צריך Context. השתמשו בהקשר הזה כדי מופע של BluetoothManager שירות מערכת. אנחנו מתקשרים אל BluetoothManager#getAdapter תיתן לכם אובייקט BluetoothAdapter. אם הפונקציה getAdapter() מחזירה null, המכשיר לא תומך ב-Bluetooth.

    לדוגמה:

    Kotlin

    val bluetoothManager: BluetoothManager = getSystemService(BluetoothManager::class.java)
    val bluetoothAdapter: BluetoothAdapter? = bluetoothManager.getAdapter()
    if (bluetoothAdapter == null) {
      // Device doesn't support Bluetooth
    }
    

    Java

    BluetoothManager bluetoothManager = getSystemService(BluetoothManager.class);
    BluetoothAdapter bluetoothAdapter = bluetoothManager.getAdapter();
    if (bluetoothAdapter == null) {
      // Device doesn't support Bluetooth
    }
    
  2. הפעלת Bluetooth.

    בשלב הבא, צריך לוודא שה-Bluetooth מופעל. שיחת טלפון isEnabled() עד בודקים אם Bluetooth מופעל כרגע. אם השיטה הזו מחזירה את הערך False, ה-Bluetooth מושבת. כדי לבקש שה-Bluetooth יופעל, צריך להתקשר startActivityForResult() מעביר ACTION_REQUEST_ENABLE פעולת Intent. השיחה הזו שולחת בקשה להפעלת Bluetooth דרך הגדרות המערכת (בלי לעצור את האפליקציה).

    לדוגמה:

    Kotlin

    if (bluetoothAdapter?.isEnabled == false) {
      val enableBtIntent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
      startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT)
    }
    

    Java

    if (!bluetoothAdapter.isEnabled()) {
      Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
      startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
    }
    

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


איור 1. תיבת הדו-שיח להפעלת Bluetooth.

הקבוע REQUEST_ENABLE_BT מועבר אל startActivityForResult() הוא מספר שלם שמוגדר באופן מקומי וחייב להיות שווה ל-0 או גדול ממנו. המערכת מעביר את הקבוע הזה חזרה אליכם onActivityResult() בתור הפרמטר requestCode.

אם הפעלת Bluetooth תצליח, הפעילות שלך תקבל את קוד התוצאה RESULT_OK ב onActivityResult() קריאה חוזרת (callback). אם ה-Bluetooth לא הופעל עקב שגיאה (או המשתמש השיב "דחייה"), אז קוד התוצאה RESULT_CANCELED

לחלופין, האפליקציה יכולה גם להאזין ל ACTION_STATE_CHANGED כוונת שידור, שהמערכת משדרת בכל פעם שמצב Bluetooth שינויים. השידור הזה מכיל את השדות הנוספים EXTRA_STATE ו- EXTRA_PREVIOUS_STATE, שכולל את מצב ה-Bluetooth החדש והישן, בהתאמה. ערכים אפשריים עבור של השדות הנוספים האלה STATE_TURNING_ON STATE_ON, STATE_TURNING_OFF, ו-STATE_OFF. האזנה לשידור הזה יכולה להועיל אם האפליקציה צריכה לזהות זמן ריצה שינויים שבוצעו במצב Bluetooth.

טיפ: הפעלת יכולת הגילוי מופעלת באופן אוטומטי Bluetooth. אם אתם מתכננים להפעיל באופן עקבי את יכולת הגילוי של המכשירים בעבר אם מבצעים פעילות Bluetooth, אפשר לדלג על שלב 2 בשלבים הקודמים.

ברגע שה-Bluetooth מופעל במכשיר, אפשר להשתמש גם בגרסה הקלאסית של Bluetooth וגם Bluetooth עם צריכת אנרגיה נמוכה.

ב-Bluetooth הקלאסי, אפשר למצוא מכשירי Bluetooth וגם התחברות למכשירי Bluetooth.

עבור Bluetooth Low Energy, אפשר למצוא מכשירי BLE, להתחבר לשרת GATT וגם העברה של נתוני BLE.