在Android 5.0和更高版本中,Androi BLE writeCharacteristics方法始终返回false

弗拉德·莫尔扎诺夫(Vlad Morzhanov)

我正在尝试使用BLE模块在android设备和自定义板之间交换数据。我在Android设备版本5.0及更高版本上的featuresWrite()方法遇到了一些麻烦。在情人版本中,featuresWrite()方法返回true,然后在BleGattCallback中调用onCharacteristicsWrite()回调

写入方法:

private void sendMessageToDevice(String message) {

    byte nullByte = 0x00;
    byte[] temp = message.getBytes();
    byte[] tx = new byte[temp.length + 1];
    tx[tx.length - 1] = nullByte;

    System.arraycopy(temp, 0, tx, 0, temp.length);

    characteristicWrite.setValue(tx);

    boolean writeResult = mBluetoothGatt.writeCharacteristic(characteristicWrite);

    Log.d(LOG_TAG, "writeResult"); //true
}

onCharacteristicsWrite方法:

@Override
    public void onCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
        super.onCharacteristicWrite(gatt, characteristic, status);

        Log.d(LOG_TAG, status); // status = 0 - GATT_SUCCESS
    }

但是,当我在Android设备v 5.0上执行此代码时,writeCharacteristic()方法的结果始终为false,并且未调用onCharacteristicWrite()回调。

谁能解释我如何在BLE设备和Android 5.0+之间正确建立连接?对于这种类型的设备,也许我需要一些特定的方法。应用程序已在三星和联想智能手机v5.0 +上进行了测试。

弗拉德·莫尔扎诺夫(Vlad Morzhanov)

问题解决了。您只需要在获得writeCharacteristic函数的“假”结果后再次调用discoverServices()即可:

private void sendMessageToDevice(String message) {

        .............

        boolean writeResult = mBluetoothGatt.writeCharacteristic(characteristicWrite);

        if(!writeResult)
           mBluetoothGatt.discoverServices();
}

之后,您需要再次调用writeCharacteristic()函数,对我而言,结果为“ true”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS 和 Android 支持的 BLE 5 数据速率

来自分类Dev

Android BLE-如何在ScanCallback中调用onScanResult方法?

来自分类Dev

Android BLE特征getValue返回null

来自分类Dev

支持Android 5 BLE外设模式的芯片组/设备

来自分类Dev

BLE广告的Android 5静态蓝牙MAC地址

来自分类Dev

从未调用Android BLE onCharacteristicRead和onCharacteristicChanged

来自分类Dev

Android BLE同时通知和指示

来自分类Dev

Android和蓝牙低功耗(BLE)

来自分类Dev

Android BLE通知:方法setCharacteristicNotification是否足够?

来自分类Dev

在Android BLE中未调用onBatchScanResults

来自分类Dev

在Android BLE中未调用onBatchScanResults

来自分类Dev

在Android中检测BLE设备名称更改

来自分类Dev

何时在Android中为BLE调用BluetoothGattCallback和onConnectionStateChange?

来自分类Dev

Android BLE 设备按钮在 android 中按下警报

来自分类Dev

Android BLE,读写特性

来自分类Dev

Android BLE readCharacteristic失败

来自分类Dev

Android BLE信标扫描

来自分类Dev

Android BLE被动扫描

来自分类Dev

Android BLE发送数据

来自分类Dev

Android Ble延迟通知

来自分类Dev

Android Ble MTU大小

来自分类Dev

Android BLE,读写特性

来自分类Dev

Android BLE写入响应

来自分类Dev

Ble Android 广告:AddServiceData

来自分类Dev

iOS和Android Max BLE通告和扫描字节

来自分类Dev

从BLE onCharacteristicChanged()调用Android线程,AsyncTask和IntentService

来自分类Dev

从BLE onCharacteristicChanged()调用Android线程,AsyncTask和IntentService

来自分类Dev

如何在Nexus 5上修复Android BLE SCAN_FAILED_FEATURE_UNSUPPORTED?

来自分类Dev

Notification.Builder setTicker在Android 5及更高版本中仍然有用吗?

Related 相关文章

热门标签

归档