Ich versuche, Daten zwischen Android-Gerät und benutzerdefinierte Board mit BLE-Modul auszutauschen. Und ich habe einige Probleme mit der Methode characteristicsWrite() auf Android-Geräten Version 5.0 und höher. In Liebhaber Versionen characteristicsWrite() -Methode return true und ruft dann onCharacteristicsWrite() Rückruf in BleGattCallbackAndroi BLE writeCharacteristics Methode gibt immer false in Android 5.0 und höher
Schreibmethode:
private void sendMessageToDevice(String message) {
byte nullByte = 0x00;
byte[] temp = message.getBytes();
byte[] tx = new byte[temp.length + 1];
tx[tx.length - 1] = nullByte;
System.arraycopy(temp, 0, tx, 0, temp.length);
characteristicWrite.setValue(tx);
boolean writeResult = mBluetoothGatt.writeCharacteristic(characteristicWrite);
Log.d(LOG_TAG, "writeResult"); //true
}
onCharacteristicsWrite Methode:
@Override
public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
super.onCharacteristicWrite(gatt, characteristic, status);
Log.d(LOG_TAG, status); // status = 0 - GATT_SUCCESS
}
Aber wenn ich diesen Code auf Android ausführen Geräte v 5.0 Ergebnis der writeCharacteristic() -Methode immer false und onCharacteristicWrite() Callback nicht aufgerufen.
Kann mir jemand erklären, wie man eine Verbindung zwischen BLE-Gerät und Android 5.0+ richtig herstellt? Vielleicht brauche ich einen bestimmten Ansatz für diese Art von Geräten. Anwendung getestet auf Samsung und Lenovo Smartphones v5.0 +.
Sind Sie sicher, dass Sie Ihre 'GATT'-Ebene richtig angeschlossen haben? – Jeeter
Anwendung funktioniert gut mit Android-Geräten Version niedriger 5.0, also schätze ich Schicht richtig verbunden. Ich benutze dieses Tutorial um eine Verbindung herzustellen: [Android BLE] (https://developer.android.com/guide/topics/connectivity/bluetooth-le.html) –