So habe ich ein BLE-Peripheriegerät mit einer benutzerdefinierten UUID, und ich bin in der Lage, es in Ordnung zu verbinden. Ich kann mit der benutzerdefinierten Merkmal lesen:BLE versucht, ein benutzerdefiniertes Profil zu verarbeiten, erhalten Fehler beim Empfangen Broadcast Intent
if (UUID_HEART_RATE_MEASUREMENT.equals(characteristic.getUuid())) {
int flag = characteristic.getProperties();
int format = -1;
if ((flag & 0x01) != 0) {
format = BluetoothGattCharacteristic.FORMAT_UINT16;
Log.d(TAG, "Heart rate format UINT16.");
} else {
format = BluetoothGattCharacteristic.FORMAT_UINT8;
Log.d(TAG, "Heart rate format UINT8.");
}
final int heartRate = characteristic.getIntValue(format, 1);
Log.d(TAG, String.format("Received heart rate: %d", heartRate));
intent.putExtra(EXTRA_DATA, String.valueOf(heartRate));
}
else {
if(characteristic.getValue()!=null){
final int data2 = characteristic.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT32, 0);
intent.putExtra("Right",String.valueOf(data2));}
}
sendBroadcast(intent);
}
Aber wenn ich angeben möchten, was mit einem bestimmten Merkmal zu tun:
public final static UUID chara = UUID.fromString("custom 128bit UUID");
private void broadcastUpdate(final String action,
final BluetoothGattCharacteristic characteristic) {
final Intent intent = new Intent(action);
if(chara.equals(characteristic.getUuid())){
if(characteristic.getValue()!=null){
final int data2 = characteristic.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT32, 0);
intent.putExtra("Right",String.valueOf(data2));}
}
sendBroadcast(intent);
}
ich Fehler übertragen Intent empfangen ..... Verursacht durch: java.lang.NumberFormatException: Ungültige int: "null"
Kann mir bitte jemand sagen, was ich falsch mache?
Ich stehe vor dem gleichen Problem. Hast du irgendeine Lösung gefunden? – Nithinjith