Android 蓝牙通信——AndroidBluetoothManager

来源:互联网 发布:java报表导出excel 编辑:程序博客网 时间:2024/05/21 09:18

转载请说明出处!
作者:kqw攻城狮
出处:个人站 | CSDN


To get a Git project into your build:

Step 1. Add the JitPack repository to your build file

Add it in your root build.gradle at the end of repositories:

allprojects {    repositories {        ...        maven { url 'https://jitpack.io' }    }}

Step 2. Add the dependency

dependencies {        compile 'com.github.kongqw:AndroidBluetoothManager:1.0.0'}

AndroidBluetoothManager

效果图

这里写图片描述

PNG

GIF

基础功能

添加权限

<uses-permission android:name="android.permission.BLUETOOTH" /><uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

初始化

mBluetoothManager = new BluetoothManager();

打开蓝牙

mBluetoothManager.openBluetooth();

关闭蓝牙

mBluetoothManager.closeBluetooth();

添加蓝牙开关状态的监听

mBluetoothManager.setOnBluetoothStateListener(this);
/** * 正在关闭蓝牙的回调 */@Overridepublic void onBluetoothStateTurningOff() {    // TODO}/** * 蓝牙关闭的回调 */@Overridepublic void onBluetoothStateOff() {    // TODO}/** * 正在打开蓝牙的回调 */@Overridepublic void onBluetoothStateTurningOn() {    // TODO}/** * 蓝牙打开的回调 */@Overridepublic void onBluetoothStateOn() {    // TODO}

移除蓝牙开关状态的监听

mBluetoothManager.removeOnBluetoothStateListener();

设置蓝牙可见

startActivity(mBluetoothManager.getDurationIntent(0));

获取蓝牙名称

mBluetoothManager.getName()

修改蓝牙名称

mBluetoothManager.setName(newName);

扫描附近的蓝牙设备

mBluetoothManager.discovery();

添加扫描蓝牙设备的监听

mBluetoothManager.setOnDiscoveryDeviceListener(this);
/** * 开始扫描附近蓝牙设备的回调 */@Overridepublic void onDiscoveryDeviceStarted() {    // TODO}/** * 扫描到附近蓝牙设备的回调 * * @param device 蓝牙设备 */@Overridepublic void onDiscoveryDeviceFound(BluetoothDevice device) {    // TODO}/** * 扫描附近蓝牙设备完成的回调 */@Overridepublic void onDiscoveryDeviceFinished() {    // TODO}

移除扫描蓝牙设备的监听

mBluetoothManager.removeOnDiscoveryDeviceListener();

服务端

初始化

mBluetoothService = new BluetoothService() {    @Override    protected UUID onSecureUuid() {        // TODO 设置自己的UUID        return UUID_SECURE;    }    @Override    protected UUID onInsecureUuid() {        // TODO 设置自己的UUID        return UUID_INSECURE;    }};

等待客户端连接

mBluetoothService.start();

断开连接/释放资源

mBluetoothService.stop();

添加蓝牙连接的监听

mBluetoothService.setOnServiceConnectListener(new OnServiceConnectListener() {    @Override    public void onConnectListening() {        // TODO    }    @Override    public void onConnectSuccess(BluetoothDevice device) {        // TODO    }    @Override    public void onConnectFail(Exception e) {        // TODO    }    @Override    public void onConnectLost(Exception e) {        // TODO    }});

发送消息

mBluetoothService.send(chatText);

添加消息收发的监听

mBluetoothClient.setOnMessageListener(this);
/** * 蓝牙发送了消息 * * @param message 发送的消息 */@Overridepublic void onSend(String message) {    // TODO}/** * 蓝牙接收到消息 * * @param message 接收的消息 */@Overridepublic void onRead(String message) {    // TODO}

客户端

初始化

mBluetoothClient = new BluetoothClient() {    @Override    protected UUID onSecureUuid() {        // TODO 设置自己的UUID        return UUID_SECURE;    }    @Override    protected UUID onInsecureUuid() {        // TODO 设置自己的UUID        return UUID_INSECURE;    }};

蓝牙连接(安全)

mBluetoothClient.connect(mBluetoothDevice, true);

蓝牙连接(不安全)

mBluetoothClient.connect(mBluetoothDevice, false);

断开连接/释放资源

mBluetoothClient.stop();

添加蓝牙连接的监听

mBluetoothClient.setOnClientConnectListener(new OnClientConnectListener() {    @Override    public void onConnecting() {        // TODO    }    @Override    public void onConnectSuccess(BluetoothDevice device) {        // TODO    }    @Override    public void onConnectFail(Exception e) {        // TODO    }    @Override    public void onConnectLost(Exception e) {        // TODO    }});

发送消息

mBluetoothClient.send(chatText);

添加消息收发的监听

mBluetoothClient.setOnMessageListener(this);
/** * 蓝牙发送了消息 * * @param message 发送的消息 */@Overridepublic void onSend(String message) {    // TODO}/** * 蓝牙接收到消息 * * @param message 接收的消息 */@Overridepublic void onRead(String message) {    // TODO}
6 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃了药头发掉怎么办 头皮痒头发掉的厉害怎么办 西昌学院被记过了怎么办? 初三了数学太差怎么办 板绘线条不流畅怎么办 嘴被风吹歪了怎么办 被风吹的嘴歪了怎么办 怀孕一个多月见红了怎么办 b本扣了6分怎么办 b牌驾驶证扣6分怎么办 忘记了谁考证的密码怎么办 专升本学校有课怎么办 跨境额度超了怎么办 微商代购被骗了怎么办 减肥到了瓶颈期该怎么办 大润发超市把一件商品打两件怎么办 小红书上买到假货怎么办 主动退市股票钱怎么办 老板卷款逃跑财务怎么办 房开延迟交房怎么办 房开逾期交房怎么办 买了保险想退保怎么办 辐射避难所探索废土死了怎么办 大门上边的齿轮滑丝怎么办 国通石油储油卡怎么办 买大棚房受骗了怎么办 朋友做安利天天来我门面怎么办 安利优惠顾客卡怎么办 苹果手机天气温度不显示怎么办? 安利净水器坏了怎么办 安利净水器滤芯盖搭配坏怎么办 安利会员卡过期了怎么办 婴儿吃了润唇膏怎么办? 用错沐浴露洗头怎么办 雅蜜润肤沐浴露怎么办 自煮小火锅水放少了怎么办 安利皇后锅发黑怎么办 宝宝灌肠后不拉屎怎么办 吃蛋白质粉肚子长胖了怎么办 安利产品过期了怎么办 拼多多拼不到人怎么办