Profile Bluetooth

Interfejs API Bluetooth obsługuje również pracę z profilami Bluetooth. O Profil Bluetooth to specyfikacja interfejsu bezprzewodowego do komunikacji między urządzeniami, na przykład profilu obsługi bez użycia rąk. Na urządzeniu mobilnym aby połączyć się z bezprzewodowym zestawem słuchawkowym, oba urządzenia muszą obsługiwać Profil obsługi bez użycia rąk.

Interfejs API Bluetooth udostępnia implementacje dla następujących urządzeń Bluetooth profile:

  • Zestaw słuchawkowy. Profil zestawu słuchawkowego obsługuje zestawy słuchawkowe Bluetooth, stosowanych na telefonach komórkowych. Android zapewnia BluetoothHeadset zajęcia, który służy do sterowania usługą zestawu słuchawkowego Bluetooth. Obejmuje to m.in. oraz profile zestawu słuchawkowego Bluetooth i zestawu głośnomówiącego (wersja 1.5). BluetoothHeadset class obejmuje obsługę poleceń AT. Więcej informacji na ten temat znajdziesz na stronie Polecenia AT dotyczące konkretnego dostawcy.
  • A2DP, Profil zaawansowanej dystrybucji dźwięku (A2DP) określa sposób wysokiej jakości dźwięk może być przesyłany z jednego urządzenia na drugie przez Bluetooth. połączenia. Android zapewnia BluetoothA2dp, czyli serwer proxy do sterowania usługą Bluetooth A2DP.
  • Urządzenie zdrowotne. Android zapewnia obsługę Bluetooth Health Device Profil (HDP). Dzięki temu możesz tworzyć aplikacje komunikujące się przez Bluetooth na urządzenia zdrowotne obsługujące Bluetooth, takie jak pulsometr, metry, termometry, wagi itd. Listę obsługiwanych urządzeń znajdziesz odpowiednie kody specjalizacji w zakresie danych z urządzeń znajdziesz tutaj Dane urządzenia Specjalizacje. Wartości te znajdują się też w specyfikacji ISO/IEEE 11073-20601 [7]. jako MDC_DEV_SPEC_PROFILE_* w załączniku do kodeksów nomenklatury. Więcej informacje na temat HDP: patrz Profil urządzenia zdrowotnego.

Podstawowe czynności, które należy wykonać, aby pracować z profilem:

  1. Użyj domyślnej adaptera, tak jak to opisano w Konfiguracja Bluetooth
  2. Skonfiguruj BluetoothProfile.ServiceListener Ten detektor powiadamia BluetoothProfile klientów gdy zostały połączone z usługą lub od niej odłączone.
  3. Używaj getProfileProxy() nawiązać połączenie z obiektem serwera proxy profilu powiązanym z profil. W poniższym przykładzie obiekt serwera proxy profilu jest instancją BluetoothHeadset
  4. W onServiceConnected() uzyskać uchwyt do obiektu serwera proxy profilu.
  5. Gdy masz już obiekt serwera proxy profilu, używaj go do monitorowania stanu i wykonywać inne operacje związane z tym profilem.

Ten fragment kodu pokazuje, jak nawiązać połączenie z serwerem proxy BluetoothHeadset możesz sterować profilem zestawu słuchawkowego:

Kotlin

var bluetoothHeadset: BluetoothHeadset? = null

// Get the default adapter
val bluetoothAdapter: BluetoothAdapter? = BluetoothAdapter.getDefaultAdapter()

private val profileListener = object : BluetoothProfile.ServiceListener {

    override fun onServiceConnected(profile: Int, proxy: BluetoothProfile) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = proxy as BluetoothHeadset
        }
    }

    override fun onServiceDisconnected(profile: Int) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = null
        }
    }
}

// Establish connection to the proxy.
bluetoothAdapter?.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET)

// ... call functions on bluetoothHeadset

// Close proxy connection after use.
bluetoothAdapter?.closeProfileProxy(BluetoothProfile.HEADSET, bluetoothHeadset)

Java

BluetoothHeadset bluetoothHeadset;

// Get the default adapter
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

private BluetoothProfile.ServiceListener profileListener = new BluetoothProfile.ServiceListener() {
    public void onServiceConnected(int profile, BluetoothProfile proxy) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = (BluetoothHeadset) proxy;
        }
    }
    public void onServiceDisconnected(int profile) {
        if (profile == BluetoothProfile.HEADSET) {
            bluetoothHeadset = null;
        }
    }
};

// Establish connection to the proxy.
bluetoothAdapter.getProfileProxy(context, profileListener, BluetoothProfile.HEADSET);

// ... call functions on bluetoothHeadset

// Close proxy connection after use.
bluetoothAdapter.closeProfileProxy(bluetoothHeadset);

Polecenia AT dotyczące konkretnego dostawcy

Aplikacje mogą się rejestrować, aby odbierać komunikaty systemowe ze wstępnie zdefiniowanej grupy AT (AT) konkretnego dostawcy polecenia wysyłane przez zestawy słuchawkowe (np. polecenie Plantronics +XEVENT). Przykład: aplikacja może otrzymywać komunikaty wskazujące poziom naładowania baterii połączonego urządzenia i może powiadomić użytkownika lub podjąć inne działania w razie potrzeby. Utwórz transmisję dla ACTION_VENDOR_SPECIFIC_HEADSET_EVENT obsługi specyficznych dla dostawcy poleceń AT dla zestawu słuchawkowego.

Profil urządzenia zdrowotnego

Android obsługuje Profil urządzenia Bluetooth (HDP). Bluetooth Health Interfejs API uwzględnia klasy BluetoothHealth BluetoothHealthCallback, oraz BluetoothHealthAppConfiguration, opisane w klasach kluczowych i

Podczas korzystania z interfejsu Bluetooth Health API warto znać klucz HDP koncepcje:

Źródło
urządzenie zdrowotne, takie jak waga, glukometr lub termometr, przesyła dane medyczne do urządzenia typu smart, takiego jak telefon lub tablet z Androidem.
Umywalka
Urządzenie, które odbiera dane medyczne. W aplikacji HDP ujście jest reprezentowane przez obiekt BluetoothHealthAppConfiguration.
Rejestracja
Proces rejestracji ujścia na potrzeby komunikacji z określonym stanem zdrowia urządzenia.
Połączenie
Proces służący do otwarcia kanału między urządzeniem do dbania o zdrowie (źródło) urządzenia (zlewu).

Tworzenie aplikacji HDP

Oto podstawowe kroki potrzebne do utworzenia aplikacji HDP:

  1. Uzyskaj odwołanie do obiektu serwera proxy BluetoothHealth. Tak jak zwykłe zestaw słuchawkowy i urządzenia z profilem A2DP, musisz zadzwonić pod numer getProfileProxy(), podając BluetoothProfile.ServiceListener oraz Typ profilu HEALTH , aby nawiązać połączenie z obiektem serwera proxy profilu.

  2. Utwórz BluetoothHealthCallback i zarejestruj konfigurację aplikacji (BluetoothHealthAppConfiguration), który pełni funkcję zlewu.

  3. Nawiąż połączenie z urządzeniem zdrowotnym.

  4. Po połączeniu z urządzeniem do dbania o zdrowie odczytuj i zapisuj w tej usłudze za pomocą deskryptora pliku. Uzyskane dane muszą zostać zinterpretowane z pomocą menedżera ds. stanu, który wdrożył IEEE 11073 specyfikacji.

  5. Gdy skończysz, zamknij kanał dotyczący zdrowia i wyrejestruj aplikację. Kanał zawiera też Zamyka się w przypadku długotrwałego braku aktywności.