Android蓝牙2.0框架帮您高效交互2.0协议下位机
来源:互联网 发布:淘宝直播在哪里开通 编辑:程序博客网 时间:2024/05/21 19:23
Android蓝牙2.0框架帮您高效交互2.0协议下位机
目前主流蓝牙协议是4.0的协议,但是也是有很多的设备是基于2.0协议的,所以基于业务需求封装了一套2.0框架,所有的处理基于回调,方便开发者基于不同的情况进行相应的处理,不说太多下面开始讲解基本的使用::
蓝牙设备的搜索
蓝牙设备的连接
蓝牙设备的数据写入
蓝牙设备的数据接收
- 实现蓝牙通信的服务端
蓝牙设备的搜索
首先我们需要在自己的Application里面进行相应的初始化。
Bt2.initContext(this);
开始搜索:
Bt2 bt2=Bt2.getInstance(this);;
bt2.search(new SearchListner() {
@Override
public void onBluetoothDevice(BtDevice device) {
Log.e(“MAIN”,”BtDevice==”+device);
}
@Override
public void onBondToothDevice(List devices) {
Log.e(“MAIN”,”BtDevice==”+devices);
}
@Override
public void onSearchStop() { } });
蓝牙设备的连接
bt2.connect(MAC, uuid, new ConnectStateListner() { @Override public void connectSuccess(String address) { Log.e(TAG,"connectSuccess"); } @Override public void connectError(Exception e, String address) { Log.e(TAG,"connectError=="+e.toString()); } @Override public void disConnectSuccess(String address) { Log.e(TAG,"disConnectSuccess"); } @Override public void disConnectError(Exception e, String address) { Log.e(TAG,"disConnectError"); } @Override public void disConnect(Exception e, String address) { Log.e(TAG,"disConnect"); } });
2.0是单连接模型,所以建议连接第二个设备的时候及时断开掉上个2.0设备(2.0连接和4.0连接是互相之间不影响的)。
蓝牙设备的数据写入
byte[]cmd={0x1B,0x4A,30}; bt2.write(MAC,cmd, new WriteResponse() { @Override public void writeSuccess(String address) { Log.e(TAG,"writeSuccess=="+address); } @Override public void writeError(Exception e, String address) { Log.e(TAG,"writeError==Error("); } });
所有的数据输入都是以byte[]数组的形式去传输的。蓝牙的操作一般都很耗时,所以所有的操作都是委托给线程池,然后回调到主线程进行,所以不用担心会卡顿
蓝牙数据的接收
bt2.read(MAC, new ReadReponse() { @Override public void readByte(byte[] value, String address) { } @Override public void readError(String address, Exception e) { } });
在线程里面进行轮询异步回调给主线程
蓝牙聊天的服务端实现
首先我们得启动我们的服务端:
ServerSocketMannger mannger= bt2.startServer();mannger.startAcceptThread();
不用的时候可以停止接收连接:
mannger.stopAcceptThread();
接受客户端发来的信息
mannger.setReadReponse(new ReadReponse() { @Override public void readByte(byte[] value, String address) { } @Override public void readError(String address, Exception e) { } });
客户端发来的所有信息的会出现在这个回调里面,可以根据Mac去判断是哪个客户端发来的消息;
同时他也有相应的发送功能:
mannger.write(MAC, new WriteResponse() { @Override public void writeSuccess(String address) { } @Override public void writeError(Exception e, String address) { } });
记住
不用的时候及时的进行相关的bt2.unRegisterReceiver();如果在使用的过程中出现了问题,可以在博客下面留言,我将在最快的时间内进行回复。
下载链接:http://download.csdn.net/download/baidu_28715573/9961320
- Android蓝牙2.0框架帮您高效交互2.0协议下位机
- android蓝牙与下位机交互
- android蓝牙与下位机交互
- 【Android开发 蓝牙通信】手机蓝牙与下位机HC-05蓝牙模块通信系统
- 关于《蓝牙控制台》的下位机程序(51版)
- 实现一个《 从下位机到蓝牙模块通讯到Android客户端 》的完整物联网项目。
- android 蓝牙 spp协议
- Android与PC蓝牙交互
- 简述 高效Android框架
- 蓝牙协议学习笔记(1)-2.0
- android 蓝牙SPP协议通信
- android源码蓝牙协议分析
- Android蓝牙开发GATT协议
- Android Bluetooth蓝牙开发\蓝牙协议\蓝牙通信
- Android bluetooth 蓝牙开发/蓝牙协议/蓝牙通信
- 6.PMAC下位机-下位机编程
- Android Ble 4.0 蓝牙开发交互
- Android蓝牙与全站仪蓝牙仪器数据交互
- PRML Notes-Chapter1 Introduction(1.1,1.3,1.4)
- python学习之 字符串前'r'的用法
- CodeForces
- Linux文件---标准IO概述
- Unity3d 场景搭建 基础 学习
- Android蓝牙2.0框架帮您高效交互2.0协议下位机
- == 和 equals 的区别
- c语言中的整形提升
- MyBatis学习(二)-增删改查基于XML
- Struts2 的多组 radio 设计
- Linux 常用命令
- jenkins重置密码
- [Java多线程 二]---线程的状态与基本操作
- bind函数