android 蓝牙连接库(蓝牙设备选择器)

原创 2016年05月31日 17:23:56

BluetoothSelector 蓝牙选择器


项目需要自己写的,欢迎大家使用,也希望大家批评改正,github地址:

https://github.com/yzlee/BluetoothSelector

功能

  • 通过回调函数执行蓝牙连接成功后和断开后的动作
  • 支持多蓝牙设备同时连接
  • 选择界面可显示已配对设备,也可以搜索设备
  • 可通过输入mac地址或者BluetoothDevice直接连接蓝牙
  • 可选择是否出现等待界面(方便后台连接)
  • 重连不重复开线程。
  • 连接失败后返回Exception e
  • 蓝牙选择界面、等待界面自定义(正在完善)

截图

主界面 等待连接 这里写图片描述
连接成功回调 接收数据 连接断开

引用

Gradle:

compile ‘cc.liyongzhi.bluetoothselector:bluetoothselector:1.7’

使用

引用:

/**
 * @param context 上下文
 * @param bluetoothConnectCallback 连接建立和取消连接后调用的回调函数
 */
MedBluetooth.connectBluetooth(Context context, BluetoothConnectCallback bluetoothConnectCallback);

或者

/**
 * @param context 上下文
 * @param mac 如果以前有保存蓝牙mac地址,则可以直接输入
 * @param showConnectBluetoothActivity 是否显示等待界面,若后台有自动重连请设置为false,不然每次连接都转圈圈。。。
 * @param bluetoothConnectCallback 连接建立和取消连接后调用的回调函数
 */
MedBluetooth.connectBluetooth(Context context, String mac, Boolean showConnectBluetoothActivity, BluetoothConnectCallback bluetoothConnectCallback);

BluetoothConnectCallback有两个方法:

/**
 * 连接成功或失败后调用
 * @param socket 获得的socket
 * @param device 本次连接的设备,可存下来方便下次自动重连,就不用每次都选择了。
 * @param e 错误
 */
public abstract void connected(BluetoothSocket socket, BluetoothDevice device, Exception e);

/**
 * 连接断开后调用,原理为监听系统广播
 */
public abstract void disconnected();

示例:

在需要连接蓝牙或者选择设备的地方加入代码,本例为位于OnClickListener里。

  • 输入为ContextBluetoothConnectCallback时:
mButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        //以下为调用本库,输入为Context、BluetoothConnectCallback
        MedBluetooth.connectBluetooth(mContext, new BluetoothConnectCallback() {
            @Override
            // 连接成功或失败后调用。
            public void connected(BluetoothSocket socket, BluetoothDevice device, Exception e) {
                if (e != null) {
                    //连接失败
                } else {
                    //输出为获得的socket,可以自行存到全局变量里进行数据输入输出操作。
                    //device为本次连接的设备,可调用 device.getAddress() 获得mac地址。
                    //e 为错误。
                }
            }
            @Override
            // 连接断开后调用
            public void disconnected() {
                // 原理为通过捕获系统的广播而调用的。
            }
        });
        //调用结束
    }
});
  • 输入还可以为ContextString(mac地址)Boolean(是否显示等待界面)BluetoothConnectCallback,可以用于重连,代码几乎同上。

更新历史

2016.5.31 version 1.7

可用版本。

Bug

目前公司几款app均未发现bug。但有一处判断线程是否正在运行时使用了

if (!thread.isAlive() && thread.getState() != State.RUNNABLE) {
            thread.start();
}

不知道对不对。。。

作者

微博:这是一条特立独行的猪 http://weibo.com/1881962417/ 欢迎关注!

版权声明:本文为博主原创文章,未经博主允许不得转载。

蓝牙4.0--Android BLE(二)BleLib开源库

简介  首先非常感谢BleLib的作者为我们提供了如此方便的开源库;这个库大大的简化了我们BLE开发的步骤,操作非常简单BleLib中的关键类 BleService是单个Ble连接操作的服务类 Gat...

Android蓝牙自动配对Demo,亲测好使!!!

蓝牙自动配对,即搜索到其它蓝牙设备之后直接进行配对,不需要弹出配对确认框或者密钥输入框。 经过最近一段时间得研究,针对网上给出的案例。总结了一个亲测好使的Demo。...

android BLE蓝牙详细讲解(一)

本文主要讲解Android低功耗蓝牙的api使用以及蓝牙扫描、连接、发送数据、接收数据等一系列操作,本篇结尾有本人封装的BleLib蓝牙库,非常适合蓝牙初学者使用,只需要一行代码注入就OK了,而且用法...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

微信小程序蓝牙通讯蓝牙模块demo

公司项目用到蓝牙和硬件通讯,APP正在开发,弄一个微信小程序蓝牙通讯的demo,可能后期会有微信蓝牙的项目,第一次搞,遇到2个坑: 1.安卓和苹果获取的硬件服务UUID顺序不同 2.目前用的这一版...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

android bluetooth——蓝牙的开启、搜索、配对与连接

Android 的blt仅仅支持api 18 android4.3以上,有的功能甚至需要api 19 android4.4; 所以我们在做blt项目之前一定要清楚可用的版本范围。我要讲述的是打开bl...

微信小程序蓝牙通讯蓝牙模块demo

公司项目用到蓝牙和硬件通讯,APP正在开发,弄一个微信小程序蓝牙通讯的demo,可能后期会有微信蓝牙的项目,第一次搞,遇到2个坑: 1.安卓和苹果获取的硬件服务UUID顺序不同 2.目前用的这一版...

Android蓝牙连接设备demo

  • 2017年07月01日 10:10
  • 1.22MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 蓝牙连接库(蓝牙设备选择器)
举报原因:
原因补充:

(最多只允许输入30个字)