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 ...
随机推荐
- iOS:三种常见计时器(NSTimer、CADisplayLink、dispatch_source_t)的使用
一.介绍 在iOS中,计时器是比较常用的,用于统计累加数据或者倒计时等,例如手机号获取验证码.计时器大概有那么三种,分别是:NSTimer.CADisplayLink.dispatch_source_ ...
- IIS6 Gzip 网页GZIP压缩(转)
现在主流浏览器基本都支持 Gzip 压缩,因此这也成了 WebServer 优化策略的一种常规手段.启用压缩后能有效减少网页传输数据大小,使得有限带宽能提供更多的请求,并在一定程度上提高了网页 &qu ...
- [leetcode]Wildcard Matching @ Python
原题地址:https://oj.leetcode.com/problems/wildcard-matching/ 题意: Implement wildcard pattern matching wit ...
- 详说 Block Formatting Contexts (块级格式化上下文)
在上文<详说清除浮动>中,Kayo 较为详细地介绍了 BFC ,也就是本文的主角 Block Formatting Contexts (块级格式化上下文),本文会基于上文关于 BFC 的部 ...
- 手把手实现腾讯qq拖拽删去效果(二)
这节,就一个任务如何把上节自定义的翻页动画控件整进下拉列表中去. 由于是自定义的下拉列表控件,我们需要自定义能够上啦下滑的listview,这势必会造成这个问题,上拉刷新要响应相应touch事件,拖拽 ...
- 如何三招帮你排查Linux中的硬件问题
下列贴士帮助你更快速更轻松地为Linux中的硬件排查故障.许多不同的因素可能导致Linux硬件出现问题:在你开始尝试诊断之前,了解最常见的问题以及最有可能找到原因的环节是明智之举. Linux服务器在 ...
- 如何在编辑器里添加CSS或JS代码
//编辑器里代码模式下的代码 <scripttype="text/javascript"> //my code.... </script> //编辑器里可视 ...
- VMware中让虚拟机支持虚拟化
一.问题 由于需要玩一下OpenNebula,但是现在自己只有一台笔记本,如何玩?当然是VMVare了,于是装了几台Ubuntu的虚拟机,但是在看安装OpenNebula的前提要求是 安装的主机cpu ...
- Mongoose vs mongodb native driver – what to prefer?
Paul Shan 7th Jun 2015 Mongoose or mongodb native driver, which one to use? This is one of the ini ...
- Javascript中变量函数申明优先级
先理解这句话: “函数会首先被提升,然后才是变量”,代码并不是你写的顺序那样执行的. F12把下面的代码粘贴到控制台执行一下: var getName = function () { console. ...