首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android作为BLE外设

Android作为BLE外设
EN

Stack Overflow用户
提问于 2015-02-07 11:10:39
回答 1查看 1.2K关注 0票数 3

我正在尝试创建一个Android 5(棒棒糖)应用程序,作为蓝牙低能耗(BLE)外设。该应用程序运行在支持BLE外围模式的Nexus 9上。到目前为止,我已经成功地通告了一个服务,并允许另一个BLE设备成功地连接到它。但是,当尝试读取特征值时,它会失败。

我已经检查了特征是否具有read属性以及是否设置了read权限。

当使用LightBlue iOS应用程序(https://itunes.apple.com/gb/app/lightblue-bluetooth-low-energy/id557428110?mt=8)时,我设法发现并连接到我的Nexus,并看到特征uuid,但值没有显示。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2016-05-26 04:41:14

首先,在外围模式中检查您正在广告的特征数据,通常有三种模式

代码语言:javascript
复制
BluetoothGattCharacteristic.PROPERTY_WRITE,      BluetoothGattCharacteristic.PROPERTY_READ,
BluetoothGattCharacteristic.PROPERTY_NOTIFY;

您可以使用以下命令构建所有模式的特征

代码语言:javascript
复制
BluetoothGattCharacteristic.PROPERTY_WRITE |BluetoothGattCharacteristic.PROPERTY_READ | BluetoothGattCharacteristic.PROPERTY_NOTIFY;

完成后,在构建特征时给出的BluetoothGattServerCallback()中查找onCharacteristicWriteRequest()。当中央想要发送数据时,它可以用写模式将数据写到特征,你将在外设端触发onCharacteristicWriteRequest()回调方法,你将在byte[]中有数据,并确保使用btGattServer.sendResponse(device,requestId,BluetoothGatt.GATT_SUCCESS,0,null)发送响应;通过检查回调方法中的responseNeeded布尔值。通过这种方式,数据从中央设备传输到外围设备。

并将数据从外围设备发送到中心使用通知字符

代码语言:javascript
复制
BluetoothGattCharacteristic bgc = bluetoothGattService
                    .getCharacteristic(chartersticUUID);
                bgc.setValue(bnd.data);
    btGattServer.notifyCharacteristicChanged(centralbluetoothdevice, bgc, false);

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28378129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档