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/ 欢迎关注!

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

相关文章推荐

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

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

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

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

android蓝牙传输文件时的文件格式限制及其解决方法

转载声明:本文转自http://blog.csdn.net/ican87/article/details/21521065 出于安全考虑,Android蓝牙在传输文件时对文件格式有限制,默认情况...

Android BLE设备蓝牙通信框架BluetoothKit

这个框架源于目前一个智能家居APP项目,是蓝牙部分基础模块,用于蓝牙设备扫描、连接、通知等。由于目前接入的蓝牙设备大多为低功耗蓝牙设备,所以本框架暂不支持经典蓝牙的连接。项目地址: https://g...

Android手机与多个BLE设备通信

文章转载来自于:http://blog.csdn.net/mark_sssss/article/details/45063813 BLE是蓝牙4.0的核心Profile,主打功能是快速搜索,快速连...

Android实现一个apk连接两个ble设备

声明:代码基于网上某个小工程改的,如果涉及侵权,请联系本人,立马删除。 曾经做过一个小玩意,尝试把两个ble单片机设备都连在一个apk上,同时通信。网上可以找到类似的,但我找到的代码不够完整,还是自...

Android蓝牙高级操作(多连接)

最近一直在做与bluetooth相关的应用。主要涉及Android手机蓝牙的多连接问题。网上几乎没有与蓝牙多连接相关的具体实现资料,所以我开始从android的官方文档入手,大半夜的一个人坐下面看那英...

Android手机与多个BLE设备通信

BLE是蓝牙4.0的核心Profile,主打功能是快速搜索,快速连接,超低功耗保持连接和传输数据,弱点是数据传输速率低,由于BLE的低功耗特点,因此普遍用于穿戴设备。Android 4.3才开始支持B...

Android6.0-蓝牙权限问题

在Android 6.0,原来的蓝牙功能,发现扫描蓝牙设备时,无法获取到蓝牙设备;因为在6.0后,蓝牙这块增加一个动态权限;需要在程序中动态申请。 1)        在6.0版本前,使用蓝牙功能,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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