转载请说明出处!

作者: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

效果图

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcTQ4Nzg4MDI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描写叙述" title="">

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;
}
};

等待client连接

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
}

client

初始化

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 蓝牙通信——AndroidBluetoothManager的更多相关文章

  1. Android蓝牙通信总结

    这篇文章要达到的目标: 1.介绍在Android系统上实现蓝牙通信的过程中涉及到的概念. 2.在android系统上实现蓝牙通信的步骤. 3.在代码实现上的考虑. 4.例子代码实现(手持设备和蓝牙串口 ...

  2. Qt on Android 蓝牙通信开发

    版权声明:本文为MULTIBEANS ORG研发跟随文章,未经MLT ORG允许不得转载. 最近做项目,需要开发安卓应用,实现串口的收发,目测CH340G在安卓手机上非常麻烦,而且驱动都是Java版本 ...

  3. Android蓝牙通信具体解释

    蓝牙通信的大概过程例如以下: 1.首先开启蓝牙 2,搜索可用设备 3,创建蓝牙socket.获取输入输出流 4,读取和写入数据 5.断开连接关闭蓝牙 还要发送配对码发送进行推断! 以下是全部的源码:不 ...

  4. Android蓝牙通信

    Android为蓝牙设备之间的通信封装好了一些调用接口,使得实现Android的蓝牙通信功能并不困难.可通过UUID使两个设备直接建立连接. 具体步骤: 1. 获取BluetoothAdapter实例 ...

  5. (转)android 蓝牙通信编程

    转自:http://blog.csdn.net/pwei007/article/details/6015907 Android平台支持蓝牙网络协议栈,实现蓝牙设备之间数据的无线传输. 本文档描述了怎样 ...

  6. Android蓝牙通信功能开发

    1. 概述 Bluetooth 是几乎现在每部手机标准配备的功能,多用于耳机 mic 等设备与手机的连接,除此之外,还可以多部手机之间建立 bluetooth 通信,本文就通过 SDK 中带的一个聊天 ...

  7. android 蓝牙通信编程讲解

    以下是开发中的几个关键步骤: 1,首先开启蓝牙 2,搜索可用设备 3,创建蓝牙socket,获取输入输出流 4,读取和写入数据 5,断开连接关闭蓝牙 下面是一个demo 效果图: SearchDevi ...

  8. android 蓝牙 通信 bluetooth

    此例子基于 android demo Android的蓝牙开发,虽然不多用,但有时还是会用到,  Android对于蓝牙开发从2.0版本的sdk才开始支持,而且模拟器不支持,测试需要两部手机:     ...

  9. Android BLE设备蓝牙通信框架BluetoothKit

    BluetoothKit是一款功能强大的Android蓝牙通信框架,支持低功耗蓝牙设备的连接通信.蓝牙广播扫描及Beacon解析. 关于该项目的详细文档请关注:https://github.com/d ...

随机推荐

  1. go语言之进阶篇字符串操作常用函数介绍

    下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档. 一.字符串操作常用函数介绍 1.Contains func Contains(s, substr st ...

  2. iOS开发--知识点总结

    1 .全局变量,变量名前加下划线.和系统一致. 2 . nil指针为空   @“”字符串为空 (内容为空)       ==  判断内存地址   基本变量    对于一些基本类型 可以使用==来判断, ...

  3. 在PC上像普通winform程序调试WINCE程序

    在PC上像普通winform程序调试WINCE程序 步骤: 1. 在VS2008中到 工具→选项→设备工具→设备,选择对应的平台,另存为新的名称,如CEDesktopRun,关闭VS2008.(如果不 ...

  4. 2018.08.28 ali 梯度下降法实现最小二乘

    - 要理解梯度下降和牛顿迭代法的区别 #include<stdio.h> // 1. 线性多维函数原型是 y = f(x1,x2,x3) = a * x1 + b * x2 + c * x ...

  5. Valid Number leetcode java

    题目: Validate if a given string is numeric. Some examples: "0" => true " 0.1 " ...

  6. 【Java】Java-ShutDownHook-优雅关闭系统资源

    Java-ShutDownHook-优雅关闭系统资源 java shuadownhook_百度搜索 Java应用中使用ShutdownHook友好地清理现场 - 残雪余香 - 博客园 java kil ...

  7. Intercepting a 404 in IIS 7 and up

      Lately I've been working on a system that needs to serve flat files, which is what IIS is very goo ...

  8. javascript奇技淫巧之位运算符

    奇技淫巧:指过于奇巧而无益还让人着迷的技艺与制品. And(与) & Or(或) | Exclusive Or(异或) 或者称 Xor ^ Not(非) ~ 位运算符,我们在日常js开发中其实 ...

  9. springside

    springside安装:http://www.oschina.net/question/582149_75623 1 安装maven,配置环境变量2 下载springside4 https://gi ...

  10. 【转】java并发编程系列之ReadWriteLock读写锁的使用

    前面我们讲解了Lock的使用,下面我们来讲解一下ReadWriteLock锁的使用,顾明思义,读写锁在读的时候,上读锁,在写的时候,上写锁,这样就很巧妙的解决synchronized的一个性能问题:读 ...