我有一个蓝牙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类以编程方式获取描述。
有人知道怎么可能吗?
问候。
答案 0 :(得分:2)
对于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.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);
};
}
确保蓝牙权限和其他次要变量声明。