android上实现蓝牙透传时遇到点问题
来源:互联网 发布:游戏开发中常用的算法 编辑:程序博客网 时间:2024/05/20 18:20
点击打开链接 android上实现蓝牙透传时遇到点问题
点击打开链接 蓝牙4.0BLE 手机控制 cc2540 CC2541 的串口透传功能已实现
点击打开链接 点击打开链接 点击打开链接
android上实现蓝牙透传时遇到点问题
调试android SDK附带的示例BluetoothChat。在BluetoothChat的基础上实现手机蓝牙和HC-6蓝牙模块建立连接,借此通道和PC上的串口调试工具通信——实现蓝牙透传功能。
(1)调试BluetoothChat时,不能和HC-6蓝牙模块建立连接,折腾了几个小时发现是UUID的问题。
// BluetoothChat里的UUID没有用,改为BTClient里的UUID才OK private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); //"fa87c0d0-afac-11de-8a39-0800200c9a66");
(2)发现AcceptThread中BluetoothServerSocket.accept()方法出现异常,但没有弄明白异常的根源在哪里。实现蓝牙透传功能不需要一个Server程序在等待,所以就不用创建Server线程,就不会执行到accept()方法。
// Start the thread to listen on a BluetoothServerSocket /*if (mAcceptThread == null) { mAcceptThread = new AcceptThread(); mAcceptThread.start(); }*/
(3)发现HC-6蓝牙模块有一根线和PCB板没有连上,导致手机程序无法读到数据。
(4)往蓝牙模块发送请求APDU时,需要将ASCII字符串转换为十六进制的字节数组。
// ASCII字符串转换为十六进制字节数组 private byte[] convert2HexArray(String apdu) { int len = apdu.length() / 2; char[] chars = apdu.toCharArray(); String[] hexes = new String[len]; byte[] bytes = new byte[len]; for (int i = 0, j = 0; j < len; i = i + 2, j++) { hexes[j] = "" + chars[i] + chars[i + 1]; bytes[j] = (byte)Integer.parseInt(hexes[j],16); } return bytes; } // 在程序中调用conver2HexArray方法 byte[] send = this.convert2HexArray(message); mChatService.write(send);
(5)接收来自蓝牙模块的响应APDU时,需要将十六进制的字节数组转换为ASCII字符串,然后才可以显示。
// 十六进制字节数组转换为ASCII字符串,指定元素个数 public String bytes2HexString(byte[] b, int count) { String ret = ""; for (int i = 0; i < count; i++) { String hex = Integer.toHexString(b[i] & 0xFF); if (hex.length() == 1) { hex = '0' + hex; } ret += hex.toUpperCase(); } return ret; } // 十六进制字节数组转换为ASCII字符串 public String bytes2HexString(byte[] b) { String ret = ""; for (int i = 0; i < b.length; i++) { String hex = Integer.toHexString(b[i] & 0xFF); if (hex.length() == 1) { hex = '0' + hex; } ret += hex.toUpperCase(); } return ret; } // 在程序中调用bytes2HexString方法 byte[] readBuf = (byte[]) msg.obj; String readMsg = bytes2HexString(readBuf,msg.arg1); mConversationArrayAdapter.add(mConnectedDeviceName+": " + readMsg);
- android上实现蓝牙透传时遇到点问题
- Android蓝牙开发中遇到的问题
- Android蓝牙串口通信遇到的问题
- Android 蓝牙开发遇到的问题
- android cupcake上实现蓝牙键盘接入
- Android 上实现蓝牙的一些Profile
- android蓝牙开发过程中遇到的问题(一)
- android蓝牙开发过程中遇到的问题(二)
- Android ble蓝牙4.0开发遇到的问题及解决方法
- android 蓝牙模块遇到的问题,关闭蓝牙以后下次不能正常连接
- Android手机连接蓝牙打印机连接不上的问题
- 遇到Android Studio 上部署Opencv 问题
- Android 上成功实现了蓝牙的一些Profile
- Android上成功实现了蓝牙的一些Profile
- Android上成功实现了蓝牙的一些Profile
- Android上成功实现了蓝牙的一些Profile
- Android上成功实现了蓝牙的一些Profile
- Android上成功实现了蓝牙的一些Profile .
- 九项重要的职业规划
- android studion org/codehaus/groovy/runtime/typehanding/shortTypeHandling
- 关于Xcode 6 以上版本CocoaPods可以安装但使用时报错的解决办法
- Linux下如何使用zip压缩、解压和加密
- hibernate一对一的两种实现方法
- android上实现蓝牙透传时遇到点问题
- SuSelinux服务器远程登录 配置
- 数据结构复习----并查集:poj Ubiquitous Religions
- python多线程编程
- CheckBox 失效,点击的时候没有选上
- vncserver configuration xstartup
- Matlab数据输出、、从MATLAB 以tcpip方式传输数据到 vvvv
- emacs 使用积累5.3 etags
- 网页中实时查看服务器日志(websocket + node.js实现)