Wie zum senden von Daten über eine Bluetooth Low Energy (BLE) link?
Ich bin in der Lage zu entdecken, eine Verbindung zu bluetooth.
Source-Code - - -
Über bluetooth verbinden, um Remote-Gerät:
//Get the device by its serial number
bdDevice = mBluetoothAdapter.getRemoteDevice(blackBox);
//for ble connection
bdDevice.connectGatt(getApplicationContext(), true, mGattCallback);
Gatt-Rückruf-Status:
private BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) {
//Connection established
if (status == BluetoothGatt.GATT_SUCCESS
&& newState == BluetoothProfile.STATE_CONNECTED) {
//Discover services
gatt.discoverServices();
} else if (status == BluetoothGatt.GATT_SUCCESS
&& newState == BluetoothProfile.STATE_DISCONNECTED) {
//Handle a disconnect event
}
}
@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
//Now we can start reading/writing characteristics
}
};
Nun möchte ich, um Befehle zu senden, um Remote-BLE-Gerät, wissen aber nicht, wie das zu tun.
Sobald der Befehl gesendet, um die BLE Geräte, die BLE-Gerät reagiert, indem er
Daten, die meine Bewerbung erhalten können.
InformationsquelleAutor der Frage My God | 2014-04-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie brechen diesen Vorgang in ein paar Schritten, wenn Sie eine Verbindung zu einem BLE-Gerät und entdecken Sie die Dienste:
Display zur Verfügung
gattServices
imonServicesDiscovered
für Ihrecallback
Um zu überprüfen, ob Sie schreiben können ein Merkmal oder nicht
überprüfen Sie für BluetoothGattCharacteristic EIGENSCHAFTEN -ich wusste gar nicht, dass zu aktivieren müssen die PROPERTY_WRITE auf der BLE-hardware und verschwendet viel Zeit.
Wenn Sie schreiben, ein Merkmal, spielt die hardware keine Aktionen ausführen, um explizit anzugeben, das der Betrieb (in meinem Fall war ich eine led-Beleuchtung)
Angenommen
mWriteCharacteristic
ist ein BluetoothGattCharacteristicDer Teil, wo das zu überprüfen, sollte die IMMOBILIE sein, wie:
Und zu schreiben, Ihr Merkmal:
Diese sind die nützlichen Teile des Codes, die Sie implementieren müssen, um genau.
Finden dieses github-Projekt für eine Implementierung mit nur eine einfache demo.
InformationsquelleAutor der Antwort user2450263
Eine noob-freundliche Anleitung, um Android interagieren Sie mit einer LED-Lampe.
Schritt 1.
Holen Sie sich ein Werkzeug zum Scannen Sie Ihren BLE-Gerät. Ich habe "Bluetooth LE Lab" für Win10, aber dieser wird es auch tun: https://play.google.com/store/apps/details?id=com.macdom.ble.blescanner
Schritt 2.
Analysieren Sie das Verhalten des BLE-Gerät durch die Eingabe von Daten, empfehle ich die Eingabe der hex-Werte.
Schritt 3.
Holen Sie sich die Beispiel-der Android-docs. https://github.com/googlesamples/android-BluetoothLeGatt
Schritt 4.
Ändern Sie die UUIDs finden Sie in
SampleGattAttributes
Meine config:
Schritt 5.
In BluetoothService.java ändern
onServicesDiscovered
:Konvertieren des byte-Zeichenfolge mithilfe dieser Funktion:
PS: Der obige code ist weit entfernt von der Produktion, aber ich hoffe, es hilft denen, die sich neu zu BLE.
InformationsquelleAutor der Antwort Martin Pfeffer