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
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

android-BluetoothManager

BluetoothManager public final class BluetoothManager  extends Object  java.lang.Object ...

第十四篇 ANDROID的 BLUETOOTH 实现机制与架构

从ANDROID3.0开始BLUETOOTH  API提供了对Bluetooth profile协议的支持。目前ANDROID4.0 API提供了五种蓝牙无线接口规范(Bluetooth profi...
  • GooHong
  • GooHong
  • 2012年09月21日 22:05
  • 13455

android -- 蓝牙 bluetooth (一) 入门

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

蓝牙服务的注册,启动源码分析

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

Android BLE设备蓝牙通信框架BluetoothKit

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

android pbap client 蓝牙

分类: PBAP android2013-05-29 16:59 444人阅读 评论(0) 收藏 举报 BlueTooth Phone Book Access Profile Client ...

高通平台android开发总结

http://blog.csdn.net/mirkerson/article/details/7691029 http://blog.csdn.net/mirkerson/article/detai...

安卓开发实现启动界面

启动界面的简单实现思路: 首先:是一个画面显示出来,并且该界面的透明度会一直变化,最后启动界面消失,跳转到正常主界面. 主要技术实现就是: ①将该启动界面写好xml文件和activity文件. ...

Android——蓝牙通信

Android手表将采集到的数据实时的发送到手机上,选择的数据传递方式为蓝牙通信。由于暂时没有手表,所以在两台手机上进行实验...

Android蓝牙通信——安卓蓝牙obtainMessage数据传输部分数据丢失乱序问题

根据google的demo写的蓝牙通信程序,在接收蓝牙的信息时,发现收到的数据有部分丢失和乱序。 在电脑上串口上查看蓝牙模块数据传输结果正常, 但是当利用蓝牙传数据的时候,上位机端(安卓手机客户端...
  • SAM2un
  • SAM2un
  • 2017年03月11日 23:28
  • 499
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 蓝牙通信——AndroidBluetoothManager
举报原因:
原因补充:

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