Android 蓝牙通信——AndroidBluetoothManager
转载请说明出处!
作者: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'
}
效果图
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcTQ4Nzg4MDI=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="这里写图片描写叙述" title="">
基础功能
加入权限
<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的更多相关文章
- Android蓝牙通信总结
这篇文章要达到的目标: 1.介绍在Android系统上实现蓝牙通信的过程中涉及到的概念. 2.在android系统上实现蓝牙通信的步骤. 3.在代码实现上的考虑. 4.例子代码实现(手持设备和蓝牙串口 ...
- Qt on Android 蓝牙通信开发
版权声明:本文为MULTIBEANS ORG研发跟随文章,未经MLT ORG允许不得转载. 最近做项目,需要开发安卓应用,实现串口的收发,目测CH340G在安卓手机上非常麻烦,而且驱动都是Java版本 ...
- Android蓝牙通信具体解释
蓝牙通信的大概过程例如以下: 1.首先开启蓝牙 2,搜索可用设备 3,创建蓝牙socket.获取输入输出流 4,读取和写入数据 5.断开连接关闭蓝牙 还要发送配对码发送进行推断! 以下是全部的源码:不 ...
- Android蓝牙通信
Android为蓝牙设备之间的通信封装好了一些调用接口,使得实现Android的蓝牙通信功能并不困难.可通过UUID使两个设备直接建立连接. 具体步骤: 1. 获取BluetoothAdapter实例 ...
- (转)android 蓝牙通信编程
转自:http://blog.csdn.net/pwei007/article/details/6015907 Android平台支持蓝牙网络协议栈,实现蓝牙设备之间数据的无线传输. 本文档描述了怎样 ...
- Android蓝牙通信功能开发
1. 概述 Bluetooth 是几乎现在每部手机标准配备的功能,多用于耳机 mic 等设备与手机的连接,除此之外,还可以多部手机之间建立 bluetooth 通信,本文就通过 SDK 中带的一个聊天 ...
- android 蓝牙通信编程讲解
以下是开发中的几个关键步骤: 1,首先开启蓝牙 2,搜索可用设备 3,创建蓝牙socket,获取输入输出流 4,读取和写入数据 5,断开连接关闭蓝牙 下面是一个demo 效果图: SearchDevi ...
- android 蓝牙 通信 bluetooth
此例子基于 android demo Android的蓝牙开发,虽然不多用,但有时还是会用到, Android对于蓝牙开发从2.0版本的sdk才开始支持,而且模拟器不支持,测试需要两部手机: ...
- Android BLE设备蓝牙通信框架BluetoothKit
BluetoothKit是一款功能强大的Android蓝牙通信框架,支持低功耗蓝牙设备的连接通信.蓝牙广播扫描及Beacon解析. 关于该项目的详细文档请关注:https://github.com/d ...
随机推荐
- Grid++Report
ylbtech-Miscellaneos:Grid++Report 1. 关于Grid++Report返回顶部 Grid++Report 可用于开发桌面C/S报表与WEB报表(B/S报表),C/S报表 ...
- HDU1208:Pascal's Travels(DP)
Problem Description An n x n game board is populated with integers, one nonnegative integer per squa ...
- Logistic Regression总结
转自:http://blog.csdn.net/dongtingzhizi/article/details/15962797 Logistic回归总结 作者:洞庭之子 微博:洞庭之子-Bing (20 ...
- spring boot整合mybatis+mybatis-plus
Spring boot对于我来说是一个刚接触的新东西,学习过程中,发现这东西还是很容易上手的,Spring boot没配置时会默认使用Spring data jpa,这东西可以说一个极简洁的工具,可是 ...
- Eclipse CDT 插件列表
http://www.bestplugins.com/software/eclipse-c-plugin.html
- (转)最近一个项目中关于NGUI部分的总结(深度和drawCall)
在自己最近的一个项目中,软件的界面部分使用了NGUI来进行制作.在制作过程中,遇到了一些问题,也获取了一些经验,总结下来,作为日后的积累. 1.NGUI图集的使用. 此次是第一个自己正儿八经的制作完整 ...
- jquery animate()背景色渐变的处理
jquery animate函数不能处理背景色渐变,需要使用jquery.color插件 gitHub地址:https://github.com/jquery/jquery-color/ 使用代码: ...
- OpenGL ES 3.0之Texturing纹理详解(二)
Texture Filtering and Mipmapping 纹理过滤与多级纹理 前面我们已经讲了单个2D图像的2D纹理的介绍,这篇文章主要讲解多级纹理.纹理坐标是用于生成一个2D索引,当放大和缩 ...
- iOS社交app技术合伙人笔试题
理想状况当然是找到有管理能力且还在写代码的架构师了,然而假设有这种人,他自己能发起项目了.你要拉上他还真难.满足一定条件就可以了,别追求完美. 还有比这更完美的吗?请生产这种机器人: 性格开朗(开朗≠ ...
- 如何设置Apache中的最大连接数
Apache的主要工作模式有两种:prefork和worker 一.两种模式 prefork模式(缺省模式) prefork是Unix平台上的默认(缺省)MPM,使用多个子进程,每个子进程只有一个线程 ...