我有一个蓝牙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开始,我想动态地获取特征描述名称,例如(Test Rate),因为在示例中,他们使用SampleGattAttributes类以编程方式获取描述。
有人知道这是怎么可能的吗?
谨致问候。
对于BluetoothGatt动态数据,您必须按照以下步骤创建回调方法
-
创建蓝牙设备的对象,设备地址将是连接后您将获得的地址
BluetoothManager m = (BluetoothManager)context.getSystemService(Context.BLUETOOTH_SERVICE); m_adapter = m.getAdapter(); BluetoothDevice device = m_adapter.getRemoteDevice(deviceAddress);
-
创建BluetoothGatt对象
private BluetoothGatt m_gatt; m_gatt = m_device.connectGatt(m_context, false, m_callback);
3.回调实现
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); }; }
确保蓝牙权限和其他次要变量声明。