EDN China > 设计实例 > 嵌入式系统 > 操作系统 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于蓝牙与Android设备的控制系统设计

/?? 2014年07月25日 ?? 收藏1

3 Android 设备软件设计

Android2.2 版本以上才能很好的支持蓝牙功能,Android 上的应用程序一般采用Java 语言开发,编程环境一般采用Eclipse。

Android 应用程序需要使用蓝牙功能, 必须在AndroidManifest.xml 中要申请两个权限:BLUETOOTH_ADMIN 和BLUETOOTH。具体格式如下:

ission.BLUETOOTH_ADMIN"/>me="android.permission.BLUETOOTH"/>

BLUETOOTH_ADMIN 权限允许Android 应用程序启动发现设备或者进行蓝牙功能的设置;BLUETOOTH 权限是Android 应用程序执行蓝牙通信必须具有的权限,例如接受连接和传送数据。大多数应用程序都需要这个权限,才能查找当地的蓝牙设备。

由于需要和下位机的蓝牙模块连接,在应用程序中需要实现主设备功能。具体的连接流程是:

(1)在应用程序中检查设备的蓝牙功能是否开启,如果未开启,则打开蓝牙功能;

(2)查找设备附近等待连接的蓝牙设备,显示查找到的蓝牙设备的物理地址(以前没有连接过的设备)或蓝牙设备的名称;

(3)选择想要连接的蓝牙设备,如果是第一次连接这个目标设备系统会自动发起一个配对过程,弹出输入连接密码的对话框,输入“0000”,等待对方校验密码,完成配对,然后进行连接。

(4)应用程序接收到连接成功,就可以通过生成的BluetoothServerSocke 和下位机进行数据传输。需要连接的蓝牙模块是蓝牙串口,因此应用程序中定义的UUID 必须符合蓝牙串口的UUID,这样连接才会被接受。因为accept() 调用是一个阻塞的调用,应用程序所有响应在调用返回之前会被阻塞,因此一定不能在主线程中进行调用, 通常是在一个新的线程中做所有的工作从而避免应用程序主线程的阻塞。主要代码如下;

(5)关闭server socket,释放serversocket 和它占用的资源,结束应用程序。

【分页导航】


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

蓝牙? Android? 下位机? 控制系统?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈