Verständnis Merkmale Bluetooth Low Energy für Android
Ich versuche einfach Lesen und Schreiben, die Hallo Welt von einem galaxy S3 auf ein blueradio-dongle angeschlossen ist, um einen virtuellen seriellen port. aber ich bin immer
Unhandled exception: java.lang.NullPointerException
immer wenn ich call
gatt.readCharacteristic(characteristic);
Ich verwende dies, um das Merkmal zu definieren
private static final UUID MY_UUID = UUID.fromString("00001801-0000-1000-8000-00805f9b34fb");
private static final UUID charUUID = UUID.fromString("00002a01-0000-1000-8000-00805f9b34fb");
characteristic = gatt.getService(MY_UUID).getCharacteristic(charUUID);
Die UUID nahm ich aus dem LogCat, wenn ich rief discoverServices() wie so
D/BluetoothGatt(7083): discoverServices() - device: EC:FE:7E:11:12:A4
D/BluetoothGatt(7083): onGetService() - Device=EC:FE:7E:11:12:A4 UUID=00001800-0000-1000-8000-00805f9b34fb
D/BluetoothGatt(7083): onGetService() - Device=EC:FE:7E:11:12:A4 UUID=00001801-0000-1000-8000-00805f9b34fb
D/BluetoothGatt(7083): onGetService() - Device=EC:FE:7E:11:12:A4 UUID=0000180f-0000-1000-8000-00805f9b34fb
D/BluetoothGatt(7083): onGetService() - Device=EC:FE:7E:11:12:A4 UUID=da2b84f1-6279-48de-bdc0-afbea0226079
D/BluetoothGatt(7083): onGetCharacteristic() - Device=EC:FE:7E:11:12:A4 UUID=00002a00-0000-1000-8000-00805f9b34fb
D/BluetoothGatt(7083): onGetCharacteristic() - Device=EC:FE:7E:11:12:A4 UUID=00002a01-0000-1000-8000-00805f9b34fb
D/BluetoothGatt(7083): onGetCharacteristic() - Device=EC:FE:7E:11:12:A4 UUID=00002a02-0000-1000-8000-00805f9b34fb
D/BluetoothGatt(7083): onGetCharacteristic() - Device=EC:FE:7E:11:12:A4 UUID=00002a03-0000-1000-8000-00805f9b34fb
Dies ist, wo ich nicht sicher, ob ich das Tue, habe ich richtig ich weiß nicht, wie man die richtige UUID für ein Merkmal und service
Beloiw ist mein voller Callback-Funktion
private BluetoothGattCallback mGattCallback = new BluetoothGattCallback() {
public void testFunction(BluetoothGatt gatt){
Log.d(TAG, "In Test Function");
gatt.readRemoteRssi();
BluetoothGattCharacteristic characteristic;
characteristic = gatt.getService(MY_UUID).getCharacteristic(charUUID);
characteristic.setValue("Hello World");
gatt.readCharacteristic(characteristic);
}
@Override
public void onConnectionStateChange(BluetoothGatt gatt, int status,
int newState) {
gatt.discoverServices();
}
@Override
public void onServicesDiscovered(BluetoothGatt gatt, int status) {
Log.d(TAG, "Services Discovered: "+ status);
//mHandler.sendMessage(Message.obtain(null, MSG_PROGRESS, "Enabling Sensors..."));
/*
* With services discovered, we are going to reset our state machine and start
* working through the sensors we need to enable
*/
testFunction(gatt);
}
public void onCharacteristicChanged(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic){
Log.d(TAG, "Characteristic Changed: "+ characteristic.getValue());
}
public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status){
Log.d(TAG, "Characteristic Read: "+ status);
}
public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status){
Log.d(TAG, "Characteristic Write: "+ status);
}
public void onDescriptorRead(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status){
Log.d(TAG, "Descriptor Read: "+ status);
}
public void onDescriptorWrite(BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status){
Log.d(TAG, "Descriptor Write: "+ status);
}
public void onReadRemoteRssi(BluetoothGatt gatt, int rssi, int status){
Log.d(TAG, "Read Rssi: "+ status);
}
public void onReliableWriteCompleted(BluetoothGatt gatt, int status){
Log.d(TAG, "Reliable Write: "+ status);
}
};
Sie sollten wahrscheinlich beginnen Sie mit, herauszufinden, genau das, was null ist, und dann warum. Wenn Ihr Beitrag ist buchstäblich richtig über die Linie, an der die exception Auftritt, dann ist dein "gatt" Objekt null ist, gibt es, allerdings scheint es als wahrscheinlich, dass ist nicht die genaue Linie, die Ausnahme.
Ich habe alles versucht mit den gatt.readCharacteristic(Merkmal); auskommentiert, und ich nicht bekommen, dass Fehler so seine eigene Charakteristik oder gatt, die ist null
Sie können herausfinden, die durch die Anmeldung (oder debugger) und von dort gehen, um herauszufinden, warum. Obwohl technisch gesehen, wenn das ist die genaue Zeile angegeben, die für das auftreten von Ausnahme (und nicht nur ein Teil seiner call-stack) dann nur das gatt könnte die null.
Ich habe alles versucht mit den gatt.readCharacteristic(Merkmal); auskommentiert, und ich nicht bekommen, dass Fehler so seine eigene Charakteristik oder gatt, die ist null
Sie können herausfinden, die durch die Anmeldung (oder debugger) und von dort gehen, um herauszufinden, warum. Obwohl technisch gesehen, wenn das ist die genaue Zeile angegeben, die für das auftreten von Ausnahme (und nicht nur ein Teil seiner call-stack) dann nur das gatt könnte die null.
InformationsquelleAutor justin018 | 2014-01-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
UUID ist vorgegeben durch bluetooth.org es definiert das Präfix, z.B. 00001800, der Letzte Teil "0000-1000-8000-00805f9b34fb" sind für alle gleich sind.
finden Sie in der Liste der vorgegebenen UUID hier.
InformationsquelleAutor jp_eagle
Ich versuche, die gleiche Sache, die mit der Blueradio USB-dongle.
Ich habe folgende info gefunden auf BlueRadio Android-Beispiel-Projekt. Möglicherweise werden diese Informationen möglicherweise für Sie nützlich sein
UUID für BRSP SERVICE
Merkmal UUID für BRSP
Wenn du mehr herausfinden, info, bitte teilen.
Dank
John
InformationsquelleAutor John Samathanam