android 蓝牙串口通讯使用简介
需要的权限
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
串口协议UUID
String SPP_UUID = "00001101-0000-1000-8000-00805F9B34FB";
需要监听的相关广播
IntentFilter intent = new IntentFilter();
intent.addAction(BluetoothDevice.ACTION_FOUND);
intent.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED);
intent.addAction(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);
intent.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
registerReceiver(searchDevices, intent);
获取蓝牙适配器
btAdapt = BluetoothAdapter.getDefaultAdapter();
蓝牙未打开时,调用系统打开蓝牙提示
if (btAdapt != null && btAdapt.isEnabled() == false) {
Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent, RQ_CODE_OPEN_BT);
return;
}
当然,你也可以不使用系统的打开蓝牙提示而直接打开蓝牙
btAdapt.enable();
关闭蓝牙
btAdatp.disable();
调用系统蓝牙设置
Intent intent = new Intent(Settings.ACTION_BLUETOOTH_SETTINGS);
startActivity(intent);
获取绑定设备列表:
Set<BluetoothDevice> pairedDevices = btAdapt.getBondedDevices();
和指定蓝牙设备建立socket连接
private void connect(BluetoothDevice btDev) {
UUID uuid = UUID.fromString(SPP_UUID);
try {
btSocket = btDev.createRfcommSocketToServiceRecord(uuid);
MyLog.i("开始连接...");
if (btSocket != null) {
btSocket.connect();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
读取数据
private readData(){
InputStream is = null;
byte[] buffer = new byte[1024];
InputStream is = null;
try {
is = BTConfigActivity.btSocket.getInputStream(); // 得到蓝牙数据输入流
num = is.read(buffer); // 读入数据
is.close();
} catch (IOException e) {
}
}
一般读取数据可开一线程循环读取,建立连接的一方蓝牙一次发送的数据,另一方可能分多次接收数据,这里需要注意处理。如果使用循环处理,可以使用InputStream的available()方法判断可以读取的字节流的长度从而判断是否有数据输入。
发送数据
private void sendData(byte[] cmd){
try {
OutputStream os = BTConfigActivity.btSocket.getOutputStream(); // 蓝牙连接输出流
os.write(cmd);
} catch (IOException e) {
}
}
android 蓝牙串口通讯使用简介的更多相关文章
- Android蓝牙串口通讯【转】
本文转载自:http://blog.sina.com.cn/s/blog_631e3f2601012ixi.html Android蓝牙串口通讯 闲着无聊玩起了Android蓝牙模块与单片机蓝牙模块的 ...
- Android 蓝牙串口通信工具类 SerialPortUtil 3.0.+
建议使用4.+版本,避免一些不必要的bug.4.+版本文档地址:https://www.cnblogs.com/shanya/articles/16062256.html SerialPortUtil ...
- Android蓝牙串口程序开发
本文主要介绍了针对android的蓝牙串口上位机开发. 程序下载地址:点击打开链接 一.帧定义 androidclient依照一定的数据帧格式通过蓝牙串口发送数据到连接到MCU的蓝牙从机.MCU接收到 ...
- 手机与Arduino蓝牙串口通讯实验及完整例程
安卓手机与Arduino之间采用蓝牙串口通讯,是很多智能装置和互动装置常用的控制方法,简单而有效,无需网络环境,很实用的技术. 实验采用Arduino UNO板,加了一块1602LCD屏做显示(因为只 ...
- 串口(USART)通信-串口通讯协议简介
物理层:规定通讯系统中具有机械.电子功能部分的特性,确保原始数据在物理媒体的传输.其实就是硬件部分. 协议层:协议层主要规定通讯逻辑,统一收发双方的数据打包.解包标准.其实就是软件部分. 简单来说物理 ...
- Android(十六 ) android 与蓝牙串口通讯
1.得到蓝牙适配器 BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); 2.打开蓝牙 if (!mBl ...
- Android端简易蓝牙聊天通讯App(原创)
欢迎转载,但请注明出处!谢谢.http://www.cnblogs.com/weizhxa/p/5792775.html 最近公司在做一个蓝牙串口通讯的App,有一个固定的蓝牙设备,需要实现手机连接相 ...
- 第20章 USART—串口通讯
本章参考资料:<STM32F76xxx参考手册>USART章节. 学习本章时,配合<STM32F76xxx参考手册>USART章节一起阅读,效果会更佳,特别是涉及到寄存器说明的 ...
- 第20章 USART—串口通讯—零死角玩转STM32-F429系列
第20章 USART—串口通讯 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fi ...
随机推荐
- c#中的math类
http://wenku.baidu.com/link?url=TliiVtdB8IeO3wiM9mVSD-3wLZcLum7dsXlEZgSKawo6x-qvE_G3VL_yDa3ZQ_9ZFlGG ...
- HTML5初学篇章_3
表单的标签是<form>,它使页面与客户的互动成为可能.而它的大部分元素字自HTML2.0后就没有再改变过,由此可见这是一个多么具有卓越性的设计. <form>标签是用于创建供 ...
- JPA入门例子(采用JPA的hibernate实现版本)
(1).JPA介绍: JPA全称为Java Persistence API ,Java持久化API是Sun公司在Java EE 5规范中提出的Java持久化接口.JPA吸取了目前Java持久化技术的优 ...
- php课程---Json格式规范需要注意的小细节
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Lan ...
- 【iCore3 双核心板_FPGA】例程七:基础逻辑门实验——逻辑门使用
实验指导书及代码包下载: http://pan.baidu.com/s/1Rs18U iCore3 购买链接: https://item.taobao.com/item.htm?id=52422943 ...
- 临床试验中PI、CI、SI、COI是指哪些人?
今天为大家介绍的是临床试验的研究者的类型.临床试验的研究者是指在试验所在地负责实施临床试验的人员. 如果一项试验在试验场所由一组人员实施,研究者则为该组人员的负责人或领导者,也称之为主要研究者(Pri ...
- Codeforces Round #350 (Div. 2) D2 二分
五一期间和然然打的团队赛..那时候用然然的号打一场掉一场...七出四..D1是个数据规模较小的题 写了一个暴力过了 面对数据如此大的D2无可奈何 现在回来看 一下子就知道解法了 二分就可以 二分能做多 ...
- 解决Windows下运行php Composer出现SSL报错的问题
解决Windows下运行php Composer出现SSL报错的问题 2015-01-14 20:05 在windows下运行composer却出现SSL报错: E:\www>php -f ...
- Java简单类(部门、领导、雇员关系)
class Dept { private int deptno ; private String dname ; private String loc ; private Emp emps [] ; ...
- Codevs 1021 玛丽卡
Codevs 1021 玛丽卡 题目地址:http://codevs.cn/problem/1021/ 题目描述 Description 麦克找了个新女朋友,玛丽卡对他非常恼火并伺机报复. 因为她和他 ...