Android 蓝牙通信——AndroidBluetoothManager

原创 2017年03月16日 18:00:29

转载请说明出处!
作者: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);
/**
 * 正在关闭蓝牙的回调
 */
@Override
public void onBluetoothStateTurningOff() {
    // TODO
}

/**
 * 蓝牙关闭的回调
 */
@Override
public void onBluetoothStateOff() {
    // TODO
}

/**
 * 正在打开蓝牙的回调
 */
@Override
public void onBluetoothStateTurningOn() {
    // TODO
}

/**
 * 蓝牙打开的回调
 */
@Override
public void onBluetoothStateOn() {
    // TODO
}

移除蓝牙开关状态的监听

mBluetoothManager.removeOnBluetoothStateListener();

设置蓝牙可见

startActivity(mBluetoothManager.getDurationIntent(0));

获取蓝牙名称

mBluetoothManager.getName()

修改蓝牙名称

mBluetoothManager.setName(newName);

扫描附近的蓝牙设备

mBluetoothManager.discovery();

添加扫描蓝牙设备的监听

mBluetoothManager.setOnDiscoveryDeviceListener(this);
/**
 * 开始扫描附近蓝牙设备的回调
 */
@Override
public void onDiscoveryDeviceStarted() {
    // TODO
}

/**
 * 扫描到附近蓝牙设备的回调
 *
 * @param device 蓝牙设备
 */
@Override
public void onDiscoveryDeviceFound(BluetoothDevice device) {
    // TODO
}

/**
 * 扫描附近蓝牙设备完成的回调
 */
@Override
public 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 发送的消息
 */
@Override
public void onSend(String message) {
    // TODO
}

/**
 * 蓝牙接收到消息
 *
 * @param message 接收的消息
 */
@Override
public 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 发送的消息
 */
@Override
public void onSend(String message) {
    // TODO
}

/**
 * 蓝牙接收到消息
 *
 * @param message 接收的消息
 */
@Override
public void onRead(String message) {
    // TODO
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q4878802/article/details/62430661

android-BluetoothManager

BluetoothManager public final class BluetoothManager  extends Object  java.lang.Object ...
  • ZHOU452840622
  • ZHOU452840622
  • 2016-07-19 11:33:51
  • 3208

蓝牙基本功能源码解析

1, 蓝牙服务 Android中一切皆服务,首先分析蓝牙服务的注册,获取过程。 ServiceManager:管理所有服务,主要是注册和获取,并且单独运行在一个进程中,通过init启动。 Blueto...
  • u012439416
  • u012439416
  • 2016-09-20 20:49:00
  • 3826

Android Bluetooth 蓝牙4.0 详解

本文介绍Android ble 蓝牙4.0,也就是说API level >= 18,且支持蓝牙4.0的手机才可以使用,如果手机系统版本API level 首先发一下官方的demo,有兴趣的可以...
  • u014412476
  • u014412476
  • 2016-08-09 15:06:18
  • 4095

蓝牙4.0总结

1、初始化蓝牙BluetoothManager mBluetoothManager; BluetoothAdapter mBluetoothAdapter;public static BleManag...
  • u010800708
  • u010800708
  • 2016-08-18 17:54:33
  • 539

Android 4.2 Bluetooth 分析总结(二) 蓝牙enable 的整个过程

现在开始我们分析 Android4.2 Bluetooth 打开的
  • feidu804677682
  • feidu804677682
  • 2014-11-14 18:12:41
  • 12036

Bluetooth-->蓝牙开发之状态判断

1:判断设备是否支持蓝牙 BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); if (null == adapter) ...
  • angcyo
  • angcyo
  • 2016-07-27 14:21:56
  • 4395

android -- 蓝牙 bluetooth (一) 入门

前段时间在 网上看了一些关于android蓝牙的文章,发现大部分是基于老版本(4.1以前含4.1)的源码,虽然无碍了解蓝牙的基本原理和工作流程,但对着4.2.2的代码看起来总是有些遗憾。所以针对4.2...
  • baimy1985
  • baimy1985
  • 2013-05-19 21:44:40
  • 62632

Android BLE设备蓝牙通信框架BluetoothKit

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

BlueToothClient

  • 2014年06月04日 15:56
  • 2KB
  • 下载

C# PC 通过bluetooth 连接手机1

BluetoothClient Blueclient = new BluetoothClient(); Dictionary deviceAddresses = new Diction...
  • qq61394323
  • qq61394323
  • 2015-08-05 16:37:09
  • 3497
收藏助手
不良信息举报
您举报文章:Android 蓝牙通信——AndroidBluetoothManager
举报原因:
原因补充:

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