Android蓝牙开发教程(三)——蓝牙设备相互通讯
在上一篇中已经介绍如何连接我们搜索到的蓝牙设备,如果你还没阅读过,建议先看看上一篇文章Android蓝牙开发教程(二)——连接蓝牙设备
在上一篇文章中,无论是自动连接还是被动连接,连接成功后,都是将获取到的BluetoothSocket交由连接线程ConnectThread来处理。
@Override
public void run() {
try {
... ...
inputStream = socket.getInputStream();
outputStream = socket.getOutputStream();
byte[] buffer = new byte[BUFFER_SIZE];
int bytes;
while (true) {
//读取数据
bytes = inputStream.read(buffer);
if (bytes > 0) {
final byte[] data = new byte[bytes];
System.arraycopy(buffer, 0, data, 0, bytes);
text_msg.post(new Runnable() {
@Override
public void run() {
text_msg.setText(getResources().getString(R.string.get_msg)+new String(data));
}
});
}
}
} catch (IOException e) {
e.printStackTrace();
text_state.post(new Runnable() {
@Override
public void run() {
text_state.setText(getResources().getString(R.string.connect_error));
}
});
}
当连接成功后,就可以从BluetoothSocket中获取读数据和写数据的流接口。然后循环监听InputStream是否有获取到数据,最后将数据设置到TextView中展示出来。
/**
* 发送数据
*
* @param msg
*/
public void sendMsg(final String msg) {
byte[] bytes = msg.getBytes();
if (outputStream != null) {
try {
//发送数据
outputStream.write(bytes);
text_msg.post(new Runnable() {
@Override
public void run() {
text_msg.setText(getResources().getString(R.string.send_msgs)+msg);
}
});
} catch (IOException e) {
e.printStackTrace();
text_msg.post(new Runnable() {
@Override
public void run() {
text_msg.setText(getResources().getString(R.string.send_msg_error)+msg);
}
});
}
}
}
在发送数据的方法中,主要是用OutputStream写入数据并将写入成功后将写入的数据展示出来。
在这里只是简单的展示一下蓝牙设备之间是如何获取数据和发送数据。对于断开连接,重新连接等多种状况的处理这里就不再介绍了。在具体项目情况中再灵活变通就行了。
至此,本教程就结束了。如果有什么疑问,欢迎和本人一起探讨。
——————————————————————————————
github
csdn
Android蓝牙开发教程(三)——蓝牙设备相互通讯的更多相关文章
- Android WiFi开发教程(三)——WiFi热点数据传输
在上一篇文章中介绍了WiFi的搜索和连接,如果你还没阅读过,建议先阅读上一篇Android WiFi开发教程(二)——WiFi的搜索和连接.本篇接着简单介绍手机上如何通过WiFi热点进行数据传输. 跟 ...
- Android 蓝牙开发(3)——蓝牙的详细介绍
前面的两篇文章,主要是在 Android 官网关于蓝牙介绍的基础上加上自己的理解完成的.主要针对的是 Android 开发中的一些 API 的使用. 第一篇文章 Android 蓝牙开发(1) 主要是 ...
- Android 蓝牙开发(整理大全)
Android蓝牙开发 鉴于国内Android蓝牙开发的例子很少,以及蓝牙开发也比较少用到,所以找的资料不是很全. (一): 由于Android蓝牙的通信都需要用到UUID,如果由手机发起搜索,当搜索 ...
- ZT android -- 蓝牙 bluetooth (三)搜索蓝牙
android -- 蓝牙 bluetooth (三)搜索蓝牙 分类: Android的原生应用分析 2013-05-31 22:03 2192人阅读 评论(8) 收藏 举报 bluetooth蓝牙s ...
- Android蓝牙开发
Android蓝牙开发 近期做蓝牙小车,须要Android端来控制小车的运动.以此文记录开发过程. 使用HC-06无线蓝牙串口透传模块.对于其它的蓝牙设备本文相同适用. 蓝牙开发的流程: 获取本地蓝牙 ...
- Android WiFi开发教程(一)——WiFi热点的创建与关闭
相对于BlueTooth,WiFi是当今使用最广的一种无线网络传输技术, 几乎所有智能手机.平板电脑和笔记本电脑都支持Wi-Fi上网.因此,掌握基本的WiFI开发技术是非常必要的.本教程将围绕一个小D ...
- Android WiFi开发教程(二)——WiFi的搜索和连接
在上一篇中我们介绍了WiFi热点的创建和关闭,如果你还没阅读过,建议先阅读上一篇文章Android WiFi开发教程(一)——WiFi热点的创建与关闭. 本章节主要继续介绍WiFi的搜索和连接. Wi ...
- Android Studio系列教程三--快捷键
Android Studio系列教程三--快捷键 2014 年 12 月 09 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang.com/ ...
- Android ROM开发(三)——精简官方ROM并且内置ROOT权限,开启Romer之路
Android ROM开发(三)--精简官方ROM并且内置ROOT权限,开启Romer之路 相信ROM的相关信息大家通过前几篇的学习都是有所了解了,这里就不在一一提示了,这里我们下载一个官方包,我们还 ...
随机推荐
- importlib模块和split的结合使用
1.给定一个文件结构,在main.py中于运用importlib 导入a.py运行其中的show()方法 ├── clazz │ ├── __init__.py │ ├── a.py │ └── b. ...
- Halcon18 Mac os 下载
Halcon18 Mac os 下载地址:http://www.211xun.com/download_page_15.html HALCON 18 是一套机器视觉图像处理库,由一千多个算子以及底层的 ...
- Linux 必要软件的安装与配置
主要是记录一下,免得下次重装系统后又到处搜索.. 一.必要软件的安装 JDK 下载 tar.gz:http://www.oracle.com/technetwork/java/javase/downl ...
- Event Loop详解
1.进程,单线程与多线 进程: 运行的程序就是一个进程,比如你正在运行的浏览器,它会有一个进程. 线程: 程序中独立运行的代码段. 一个进程由单个或多个线程组成,线程是负责执行代码的. 2.单线程与多 ...
- linux下编译libmysqlclient, 安装mysql-server mysql-client
cmake . -DCMAKE_INSTALL_PREFIX=/home/zhangyawei/server/depends make make install 安装 mysql-server mys ...
- Ionic2中使用第三方插件极光推送
不同于Ionic1中插件的调用,Ionic2提供了Ionic Native.Ionic Native封装了一些常见的插件(如:Camera.Barcode Scanner等),这些插件的使用方式在官方 ...
- 纯js实现网页tab选项卡切换效果
纯js实现网页tab选项卡切换效果 百度搜索 js 点击菜单项就可以切换内容的效果
- BZOJ 3940: [Usaco2015 Feb]Censoring
3940: [Usaco2015 Feb]Censoring Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 367 Solved: 173[Subm ...
- UVA1218 Perfect Service
Time Limit: 3000MS 64bit IO Format: %lld & %llu /*by SilverN*/ #include<iostream> #inc ...
- EasyUI-Accordion
EasyUI-Accordion Accordion英文翻译就是 手风琴活 或者 可折叠的 参考效果图: 从图中我们其实也可以将这种组件理解为手风琴式的组件. 该组件方便对数据进行分类管理,在有限空间 ...