蓝牙项目
来源:互联网 发布:什么物流淘宝不能跟踪 编辑:程序博客网 时间:2024/05/16 19:23
蓝牙后台连接
- 前台蓝牙服务和后台蓝牙服务—
bindService和startService的区别
startService只是简单启动服务,启用之后便无法控制,只能调用stopService停止。
bindService使活动和服务进行通信。
复写Service类中的onBinder()方法,返回要控制的binder对象。新建ServiceConnection,在其中拿到binder对象。然后进行操作,实现service和activity的通信。
使用bindService进行绑定(intent connection auto)
使用unbindService进行解绑(connection)
后台保持连接:在unbind之后立即startService(),同时使用一个常量记录当前连接状态。
当再进入这个界面时,需要进行判断,如果已连接,则不断开,未连接则连接。
在程序退出时,进行断开蓝牙连接服务。
扫描蓝牙设备
- 首先获取到BluetoothManager 通过其中的getAdapter()方法拿————————————到—————————————————————-BluetoothAdapter,然后通过BluetoothAdapter的startScan(LeScanCallback)的方法开始扫描设备。
- onLeScan(BluetoothDevice)就是我们扫描的设备。
- 使用BluetoothDevice.connectGatt()的方法进行连接,返回BluetoothGatt的实例,就可以进行相关读写数据操作了。
GATT
GATT(Generic Attribute Profile,普通属性协议),它使BLE设备通过Service和Characteristic进行通信。
代码实现蓝牙连接流程
- 初始化蓝牙相关信息
首先判断是否支持蓝牙4.0BLE,需要安卓系统4.3以上才可以。
final BluetoothManager bluetoothManager = (BluetoothManager) atyFrameworkActivity.getSystemService(Context.BLUETOOTH_SERVICE); //获取到蓝牙管理器 mBluetoothAdapter = bluetoothManager.getAdapter(); //通过蓝牙管理器获取到蓝牙适配器
- 通过bindService后获取到蓝牙服务,进行蓝牙搜索。在serviceConnection中开启蓝牙搜索
mBluetoothAdapter.startLeScan(mLeScanCallback);//通过startLeScan进行搜索,实现蓝牙回调函数在回调函数中,记录下搜索到的蓝牙地址
public void onLeScan(final BluetoothDevice device, final int rssi, final byte[] scanRecord) { atyFrameworkActivity.runOnUiThread(new Runnable() { @Override public void run() { Log.i(TAG, "run()"); bluetoothDeviceAddressSet.add(device.getAddress()); bluetoothDevicesset.add(device);
3.
阅读全文
0 0
- 蓝牙项目
- 蓝牙项目实现
- 项目中的“蓝牙”
- CSR蓝牙测试仪 项目
- iPhone开发:蓝牙项目总结
- Android小项目蓝牙电子钟
- Android小项目蓝牙电子钟
- Android小项目蓝牙电子钟
- Android小项目蓝牙电子钟
- 开源项目--蓝牙聊天
- 开源项目--蓝牙聊天
- Android 蓝牙开发小项目
- 【VR9项目】蓝牙名称修改
- 一个ap20项目中蓝牙的知识点
- 两个手机进行蓝牙通信项目制作
- 基于51单片的蓝牙小车项目
- 蓝牙
- 蓝牙
- 谈谈防止重复提交
- 【网络】tcp_server
- C#反射操作常用方法
- C++ 引用
- 求和
- 蓝牙项目
- SpringMVC+Spring+Hibernate搭建实例
- Recurrent Neural Networks Tutorial阅读笔记
- CSS
- 从 http://www.batteries.com 搜索引擎优化效果谈起
- hibernate save集合时只有一个值
- Python笔记
- NAT技术的简要概述
- EditView与TextView如何实现长按复制、粘贴、选择