繁体   English   中英

Android蓝牙BLE onDescriptor写入GATT_INSUFFICIENT_AUTHENTICATION

[英]Android Bluetooth BLE onDescriptorWrite GATT_INSUFFICIENT_AUTHENTICATION

我有一项直接通过mac地址连接到蓝牙葡萄糖设备的服务。

if (mBluetoothGatt != null) {
        
  if (mBluetoothGatt.connect()) {
            
    return true;
        
  } 
  else {
            
    return false;
        
  }
    
}
    
    
mBluetoothGatt = device.connectGatt(this, false, mGattCallback);

配对例程和配对后从设备上下载数据的工作在第一次配对后就完美了,但是,如果我尝试重新连接到设备并注册通知,则会在BluetoothGatt.onDescriptorWrite方法中收到GATT_INSUFFICIENT_AUTHENTICATION错误。

@Override
public void onDescriptorWrite (BluetoothGatt gatt, BluetoothGattDescriptor descriptor, int status) {
    ...
    if (status == BluetoothGatt.GATT_INSUFFICIENT_AUTHENTICATION) {
    ...

然后,系统会提示用户输入个人识别码,并要求他们重新验证设备,即使“绑定状态”显示为“已绑定”。

我已经阅读了很多关于BLE的StackOverflow帖子,其中一些有冲突或没有直接解决连接处理的问题。

  1. 如果我们尝试连接到先前配对的设备,是否使用自动连接?
  2. 我们是否需要在每次连接设备时重新启用其通知? 还是只有我们第一次连接?

我使用的设备是带有KitKat 4.4的MotoG。

升级到棒棒糖解决了这个问题。 现在,身份验证可以正常工作,并且每次创建新连接时都不会提示我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM