Android如何接收CC2541所传送过来的文字讯息功能呢?
你好,我正尝试开发BLE,目前尝试Android与CC2541的沟通
我成功用battery Service 得到CC2541的电量,也使用immediate alert Service
让CC2541发出警报
那我目前想试着从CC2541发送文字的字串,而Android端来接收
问题:
1。想请问Android要使用哪个UUID才能实现接收CC2541所传送过来的文字讯息功能呢?
2,是否有开放的源码是关于Android的接收BLE装置传送过来的文字讯息呢? 如果没有那请问该怎么做呢?
wun,
1. 这个可能得用自定义UUID和service来完成,类似于一个BLE串口透传模式。可以参考一下TI的serial port代码:http://processors.wiki.ti.com/index.php/LPRF_BLE_SerialApp
2. Android端的目前没有传文字信息的源码,但是TI提供了很多Android BLE的示例代码,可以供你参考,里面有传数据的,应该对你有借鉴意义:http://www.ti.com/tool/sensortag-sw
1. 抱歉,我刚开始学习BLE,所以在CC2541这端是把想要透过BLE传送出去的字串透过serial port传送,板子就会自动将TX上的资料透过BLE传送出去吗?
2. 我下载也安装了sensortag-android-Windows,想请问哪个部分是比较类似接收文字讯息的?或是你所说的传数据的?
wun,
1. 这需要相应的profile配合,请再参考这个连接,应该是你需要的模式:http://processors.wiki.ti.com/index.php/SerialBLEbridge
2. 你可以参考追踪一下DeviceActivity.java 文件里面的 private void enableNotifications(boolean enable) 函数,这个就是会使能远端的notification, 这里的远端用的是TI的sensortag,但足以参考,另外,还是在DeviceActivity.java 中,追踪一下 private final BroadcastReceiver mGattUpdateReceiver = new BroadcastReceiver() 中的 else if (BluetoothLeService.ACTION_DATA_NOTIFY.equals(action)) , 这是在你用上面的函数使能了对方notifidation之后, 收到对方notification发过来的数据,就是之后的动作。
从手机发送数据的话,你可以追踪一下BluetoothLeService.java中, public boolean writeCharacteristic(BluetoothGattCharacteristic characteristic, byte b) 函数,就是写出去数据的,然后 DeviceActivity.java 中 else if (BluetoothLeService.ACTION_DATA_WRITE.equals(action), 回调处理,类似这样。
我只是给出建议,具体最好还是你自己稍微研究一下。
Yan
谢谢你详细的说明!!,我会仔细看看你说明的部份的!!
HI wun Martin:
您这个帖子提到的功能实现了吗?
我想实现手机向从机模块传送文字信息(400Byte)的功能;希望可以向您多学习学习。