试图用三星银河S4连接到BLE设备(关贸总协定服务器),我成功地连接到设备并获得了心跳。
现在我需要发送1280字节作为16个块的80个字节。设备接收到这16块后应该回复16上传状态,
我得到的只是其中一个块的一个上传状态(不是特定的,随机的)。
我试图通过(this.wait,Thread.sleep.)更改发送间隔有很多的价值,没有任何好的结果。
与Objective (iPhone )类似的应用程序在设备上工作得很好:(
**我想这可能与关于这一问题的任何暗示有关?或管理传输速率(间隔)的方法**
runOnUiThread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < chunkToUpload; ++i) {
sendNthModeData(i);
try {
//this.wait(100);
Thread.sleep(30,1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});发布于 2014-12-05 14:55:02
您需要等待onCharacteristicWrite在BluetoothGattCallback中被调用,然后才能发送下一位数据,否则其他数据将被丢弃。因此,在重写onCharacteristicWrite时,如果需要编写更多的内容,那么就可以为该编写创建一个可运行的。
https://stackoverflow.com/questions/26148880
复制相似问题