1

尝试使用三星 Galaxy S4 连接到 BLE 设备(GATT 服务器),我成功连接到设备并获得了心跳。

现在我需要将 1280 个字节作为 16 个 80 个字节的块发送。接收到这 16​​ 个块后的设备应回复 16 个上传状态,

我得到的只是其中一个块的一种上传状态(不是特定的,随机的)

我试图通过 (this.wait, Thread.sleep..) 用许多值更改发送间隔,但没有任何好的结果。

与 Objective-c (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();
                }

            }
        }
    });
4

1 回答 1

0

在发送下一位数据之前,您需要等待onCharacteristicWrite被调用BluetoothGattCallback,否则其他数据将被丢弃在地上。因此,在您覆盖 时onCharacteristicWrite,如果您要编写更多内容,则为该写入启动一个 Runnable。

于 2014-12-05T14:55:02.227 回答