Wie binde ich eigentlich ein Gerät?

8

Überall, wo ich hinsehe, finde ich diese Methode "getBondedDevices ()" für meinen Bluetooth-Adapter. Allerdings habe ich mein Tablet und ein anderes Bluetooth-Gerät neben mir sitzen, und ich kann nicht herausfinden, wie das Gerät tatsächlich auf der Liste der verbundenen Geräte angezeigt werden.

    
JuiCe 07.06.2012, 18:09
quelle

2 Antworten

20

In Bluetooth ausgedrückt, sind "verbunden" und "gepaart" grundsätzlich Synonyme (offiziell führt der Prozess der Paarung zu einer Bindung, aber die meisten Leute benutzen sie austauschbar). Damit Ihr Gerät zu dieser Liste hinzugefügt werden kann, müssen Sie den Vorgang Erkennung durchlaufen. Auf diese Weise sucht ein Gerät nach einem anderen Gerät und sucht dann nach einem Paar zusammen.

Sie können dies tatsächlich über die Geräteeinstellungen als Benutzer tun, aber wenn Sie dies im Kontext einer App so sehen, wird Ihr Prozess wahrscheinlich etwa so aussehen:

  1. Registrieren Sie eine BroadcastReceiver für BluetoothDevice.ACTION_FOUND und BluetoothAdapter. ACTION_DISCOVERY_FINISHED
  2. Starten Sie die Erkennung, indem Sie BluetoothAdapter.startDiscovery() aufrufen.
  3. Ihr Empfänger wird jedes Mal, wenn ein neues Gerät in Reichweite gefunden wird, mit der ersten Aktion aufgerufen, und Sie können es prüfen, um festzustellen, ob es mit dem Gerät verbunden ist, mit dem Sie sich verbinden möchten. Sie können BluetoothAdapter.cancelDiscovery() aufrufen, sobald Sie festgestellt haben, dass die Batterie nicht mehr als nötig verschwendet wird.
  4. Wenn die Erkennung abgeschlossen ist und Sie sie nicht abgebrochen haben, wird Ihr Empfänger mit der zweiten Aktion aufgerufen. damit Sie nicht mehr Geräte erwarten.
  5. Öffnen Sie bei einer Geräteinstanz ein BluetoothSocket und connect() . Wenn die Geräte noch nicht verbunden sind, wird die Kopplung eingeleitet und möglicherweise eine Systembenutzeroberfläche für einen PIN-Code angezeigt.
  6. Nach dem Pairing wird Ihr Gerät in der verbundenen Geräteliste angezeigt, bis der Benutzer die Einstellungen ändert und entfernt.
  7. Die connect() -Methode öffnet auch tatsächlich die Socket-Verbindung, und wenn sie zurückkehrt, ohne eine Ausnahme auszulösen, sind die beiden Geräte verbunden.
  8. Jetzt verbunden, können Sie getInputStream() und getOutputStream() vom Socket aufrufen, um Daten zu lesen und zu schreiben.

Grundsätzlich können Sie die Liste der verbundenen Geräte überprüfen, um schnell auf ein externes Gerät zugreifen zu können. In den meisten Anwendungen werden Sie jedoch eine Kombination aus dieser und der echten Erkennung durchführen, um sicherzustellen, dass Sie immer eine Verbindung zum entfernten Gerät herstellen können was der Benutzer tut. Wenn ein Gerät bereits verbunden ist, führen Sie nur die Schritte 5-7 durch, um eine Verbindung herzustellen und zu kommunizieren.

Weitere Informationen und Beispielcode finden Sie in den Abschnitten "Ermitteln von Geräten" und "Anschließen von Geräten" unter Android SDK Bluetooth Guide .

HTH

    
Devunwired 07.06.2012, 19:00
quelle
0

API-Level 19 und höher Sie können createBond () auf BluetoothDevice-Instace aufrufen, zu dem Sie eine Verbindung herstellen möchten. Sie benötigen einige Berechtigungen, um die sichtbaren Geräte zu erkennen und aufzulisten

%Vor%

Code zum Auffinden und Auflisten der Geräte:

%Vor%

Rufen Sie einfach createBond () auf dem ausgewählten Gerät auf.

    
Shailendra Yadav 22.09.2017 06:13
quelle

Tags und Links