Javascript 可引发写入的FC

Javascript 可引发写入的FC,javascript,android,cordova,bluetooth,bluetooth-lowenergy,Javascript,Android,Cordova,Bluetooth,Bluetooth Lowenergy,一切都在这里: 我正试图通过蓝牙向我的rpi发送时间。 但我无法让evothings.ble.writeCharacteristic工作,原因不明:/ 我使用了这样的书写特征: app.js 应用程序在显示“时间正在更新…”后崩溃 日志: 02-05 11:03:54.416 20011 20011 D BluetoothGatt: readCharacteristic() - uuid: ffffffff-ffff-ffff-ffff-fffffffffff1 02-05 11:03:54.

一切都在这里:

我正试图通过蓝牙向我的rpi发送时间。 但我无法让
evothings.ble.writeCharacteristic
工作,原因不明:/

我使用了这样的书写特征:

app.js

应用程序在显示“时间正在更新…”后崩溃

日志:

02-05 11:03:54.416 20011 20011 D BluetoothGatt: readCharacteristic() - uuid: ffffffff-ffff-ffff-ffff-fffffffffff1
02-05 11:03:54.577  1049  1049 E WifiTrafficPoller: TRAFFIC_STATS_POLL true Token 65 num clients 9
02-05 11:03:54.578  1049  1049 E WifiTrafficPoller:  packet count Tx=94854 Rx=127944
02-05 11:03:54.670  2185  2206 I bt_btif_gatt: set_read_value unformat.len = 42 
02-05 11:03:54.671 20011 20878 D BluetoothGatt: onCharacteristicRead() - Device=B8:27:EB:6C:4F:9C UUID=ffffffff-ffff-ffff-ffff-fffffffffff1 Status=0 srvcType=0 srvcInstId=0 charInstId=0
02-05 11:03:54.694 20011 20011 E AndroidRuntime: FATAL EXCEPTION: main
02-05 11:03:54.694 20011 20011 E AndroidRuntime: Process: com.evothings.evothingsviewer, PID: 20011
02-05 11:03:54.694 20011 20011 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.bluetooth.BluetoothGattCharacteristic.setWriteType(int)' on a null object reference
02-05 11:03:54.694 20011 20011 E AndroidRuntime:    at com.evothings.BLE$12.run(BLE.java:988)
02-05 11:03:54.694 20011 20011 E AndroidRuntime:    at android.os.Handler.handleCallback(Handler.java:815)
02-05 11:03:54.694 20011 20011 E AndroidRuntime:    at android.os.Handler.dispatchMessage(Handler.java:104)
02-05 11:03:54.694 20011 20011 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:207)
02-05 11:03:54.694 20011 20011 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:5728)
02-05 11:03:54.694 20011 20011 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
02-05 11:03:54.694 20011 20011 E AndroidRuntime:    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
02-05 11:03:54.694 20011 20011 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679)

在服务器端,除了没有调用OnWriteRequest之外,一切都很好。所以安卓应用程序在发送信息之前就崩溃了。

在你的日志中,uuid对我来说很奇怪。
我不知道您正在测试哪种设备,但uuid不满足其基本格式。
请参阅 .

如果您确定uuid及其获取方式,请检查特征uuid。
它不是简单地检查字符串,而是检查如何检索特征ID。
检索它的最佳方法是调用getService,然后调用getCharacteristic

例如,

var service = evothings.ble.getService(deviceObject, '12345678-0000-1000-8000-00805f9b34fb');
var characteristic_uuid = evothings.ble.getCharacteristic(service, '11111111-0000-1000-8000-00805f9b34fb');

evothings.ble.writeCharacteristic(deviceObject, characteristic_uuid, new Uint8Array([1]), success, error);

如果这些都很好,那么请检查设备是否可以接收UINT8阵列类型。

您的问题有点不清楚,理解起来有点复杂。试着编辑它,问你想更清楚地知道什么。你是对的,只是编辑过而已。现在它只显示了当前的问题。我将对此进行研究,谢谢:)-我们正在尝试与一位朋友建立一个小型乒乓球示例。我们每次都会遇到相同的错误,不同的电话,不同的RPi,相同的崩溃。。。Uuid可能是解决方案。我会回来的;)
var service = evothings.ble.getService(deviceObject, '12345678-0000-1000-8000-00805f9b34fb');
var characteristic_uuid = evothings.ble.getCharacteristic(service, '11111111-0000-1000-8000-00805f9b34fb');

evothings.ble.writeCharacteristic(deviceObject, characteristic_uuid, new Uint8Array([1]), success, error);