蓝牙低功耗获得特性描述

时间:2013-12-12 11:05:09

标签: android bluetooth bluetooth-lowenergy android-4.4-kitkat android-4.3-jelly-bean

我有一个蓝牙4.0传感器,它向我发送了许多服务和特征,例如这个草案示例:

<service uuid="ServiceUUID" advertise="true">
  <description>Test Service</description>
     <characteristic uuid="CharacteristUUID" id="test_rate">
         <properties read="true" notify = "true"/>
            <value length="1" type="hex"></value>
            <description>Test Rate</description>
     </characteristic>
</service>

我从android示例BluetoothLEGatt开始,我希望动态获取特征描述名称(测试率),因为在示例中他们使用SampleGattAttributes类以编程方式获取描述。

有人知道怎么可能吗?

问候。

1 个答案:

答案 0 :(得分:2)

对于BluetoothGatt动态数据,您必须按照以下步骤创建回调方法

  1. 创建蓝牙设备的对象,设备地址将是您在连接后获得的地址

     BluetoothManager m = (BluetoothManager)context.getSystemService(Context.BLUETOOTH_SERVICE);
            m_adapter = m.getAdapter();
    BluetoothDevice device = m_adapter.getRemoteDevice(deviceAddress);
    
  2. 创建BluetoothGatt对象

        private BluetoothGatt m_gatt;
        m_gatt = m_device.connectGatt(m_context, false, m_callback);
    

    3.Call back implementation

      private final BluetoothGattCallback m_callback = new BluetoothGattCallback()
     {        public void onCharacteristicRead(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, int status) {
        String testid = characteristic.getDescriptor(characteristic.getUuid()).getCharacteristic().getStringValue(0);
    };
                    }
    
  3. 确保蓝牙权限和其他次要变量声明。