android上位机连接hc-06蓝牙模块(以蓝牙智能小车为例)
来源:互联网 发布:思迅进销存软件视频 编辑:程序博客网 时间:2024/05/16 19:37
假期和同伴做了一个android蓝牙控制小车的项目,他负责下位机代码实现,我负责上位机代码实现。但在蓝牙开发上的经验不算熟悉,在网上查找相关资料的时候也发现很多答案参差不齐,并且也不是用于蓝牙上位机连接的,就参着网上这一块,那一块的说法完成了一个超级简陋的实现。自己是在看不过去,于是又重构了一遍,现在把源码贴出,并且说说连接蓝牙模块的那些事:(源码见最后):
首先,要进行蓝牙连接,必不可少的几个类是:
1.BuleToothAdapter ,这个类是用来创建一个蓝牙实例,并通过实例对象进行蓝牙模块间的连接。获取该类对象的方法为:
BluetoothAdapter mAdapter = BluetoothAdapter.getDefaultAdapter();
另外,该类只声明一个蓝牙对象,并没有说明会启动蓝牙,所以需要启动蓝牙的时候,需要以下代码:
//边界监测,如果蓝牙已经开启,默认执行。如果蓝牙未开启,则选择启动蓝牙if (!mAdapter.isEnabled()) { mAdapter.enable();//启动蓝牙。}
注意的是:在某些android系统中,调用该方法会在没有任何提示的情况下直接打开蓝牙。因此我们也可以用另外一种办法打开,代码如下:
Intent requestBluetoothOn = new Intent( BluetoothAdapter.ACTION_REQUEST_ENABLE);
2.BlueToothSocket,蓝牙间的连接使用的是Socket连接的方式,因此在bluetooth包中集成了一个用于连接蓝牙的socket类,它的作用是通过调用bluetoothsocket.connect()方法进行连接,当然,在此之前,还需要对参数进行设置。
3.BluetoothDevice定义一个蓝牙设备对象,通过BlueToothSocket进行连接。声明一个BluetoothDevic对象的方法为:
BluetoothDevice device =mAdapter.getRemoteDevice(Constant.BLUE_ADDRESS);//Constant.BLUE_ADDRESS代表需要连接的蓝牙的MAC地址,可通过搜索蓝牙后,调用device.getAddress()方法获得
通过Socket设置蓝牙uuid参数的方法为:
BluetoothSocket mSocket=device.createInsecureRfcommSocketToServiceRecord(Constant.MY_UUID);//蓝牙连接需要的参数根据实际应用会有不同的类型,此处使用源码中封装的即可(在Util包下Constant.java类中可看到相关信息)
注意:因为是蓝牙上位机,并且只有一台蓝牙小车进行测试,为了使得测试比较方便和快速,因此在后期封装的时候把搜索蓝牙并显示在列表上的操作给去掉了,因此如果需要实现这一步骤的话,其实也可以在源码中进行增添。话不多说,上传送门:
蓝牙控制小车源代码
- android上位机连接hc-06蓝牙模块(以蓝牙智能小车为例)
- hc-05蓝牙模块与arduino连接实现手机控制蓝牙智能小车
- Androidble4.0蓝牙开发兼容2.0蓝牙应用(针对arduino蓝牙控制小车开发应用HC-08,06蓝牙模块的连接)
- Android蓝牙开发:蓝牙小车上位机(开源)(第二版)
- 关于蓝牙模块(HC-06)
- Ubuntu12.04与蓝牙模块HC-06连接
- 【Android开发 蓝牙通信】手机蓝牙与下位机HC-05蓝牙模块通信系统
- 用Android手机通过蓝牙模块HC-06连接Arduino串口输出
- 树莓+HC-05蓝牙模块+android数据通信
- stm32 蓝牙 智能小车
- Arduino - 蓝牙串口透传模块:HC-06从机
- s5pv210与无线蓝牙模块 HC-06从机通信
- 蓝牙模块(HC-06,BT-06)与 电脑通信
- HC-06蓝牙模块设置和使用方法
- [Arduino]HC-06蓝牙模块使用小结
- HC-06蓝牙模块设置与使用
- 蓝牙模块 HC-06 的配置
- android设备终端与蓝牙模块(HC-06)的通讯编程思路
- 时隔近5个月 Note 7的燃损真相浮出水面
- P1423 小玉在游泳
- [Leetcode] 2. Add Two Numbers
- Same Tree
- 适配器模式
- android上位机连接hc-06蓝牙模块(以蓝牙智能小车为例)
- 在Eclipse开发平台上运行基于JavaEE的项目程序
- 解决MYSQL解压版不能启动服务
- 【t058】拜年
- 时隔近5个月 Note 7的燃损真相浮出水面
- Codeforces Round #393 (Div. 2) A+B
- Fork/Join框架介绍
- B. Frodo and pillows
- 如何正确地写出单例模式