2016-04-14 2 views
1

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?

+0

Ich stehe vor dem gleichen Problem. Hast du irgendeine Lösung gefunden? – Nithinjith

Antwort

0

getIntValue gibt Integer-Typ zurück und es kann null sein, haben Sie einen Versuch/Ausnahme für diese Zeile. und, sollten Sie nicht erfolgreich die Daten2 dann sendBroadcast bekommen, aber sendet nicht immer die Übertragung?