java 安卓 蓝牙_Android 串口蓝牙通信开发Java版本

Android串口BLE蓝牙通信Java版

0. 导语

我们都知道,在物联网中,BLE蓝牙是通信设备的关键设备。在传统的物联网应用中,无线WIFI、蓝牙和Zigbee,还有一些其他的2.4GHz的无线网卡等。对于一个面向物联网的嵌入式工程师来讲,不单单是要学会底层硬件嵌入式或者是嵌入式Linux驱动的开发,还要掌握上层应用,以理解开发流程,方便未来和软件应用工程师协作开发。“也只有穿别人的鞋子,才知道别人的感觉”似乎就是这个道理吧。

16年的时候,我尝试做过Qt版本的Android,使用的是C++语言,搭建完环境之后开发出了基于Qt的蓝牙通信demo。虽然Qt在不断的完善对于Android的支持,但终究C++向Java转变的时候,效率是一方面的问题,库同样是一方面的问题。Qt的定位也只能是临时应付,或者说应用内的C++算法繁琐的时候,选择C++开发Android才是一个上上策。

对于面向物联网的嵌入式工程师,对于Android不需要掌握太深刻,重头戏不在这里,但是必须要有了解,也要会开发,我猜Android工程师的精髓在于业务逻辑处理上,而对于我们嵌入式工程师来讲,我们只在乎功能的实现,也只是Android工程师掌握的一个边角而已。后继,我们还会开发基于Java Android的Socket编程和服务器通信,还有Wifi编程。

本文的功能和Qt on Android 蓝牙通信开发一样,只是使用Java进行重写。也不得不说,Java的UI比Qt好多了,(在没有专业的UI制作下),在物联网通信中BLE蓝牙适合传输一些控制命令,或者一些家居数据包括温度湿度等等。

1. 蓝牙通信组成

我们将使用蓝牙功能按顺序分成三个部分。第一个部分,蓝牙的控制,对于蓝牙的开启和关闭;第二部分,对于蓝牙的搜索,并且可以增加到UI列表里面;第三部分,蓝牙数据传输和通信,可以发送数据,可以接收数据。如图所示,为整个蓝牙demo区域,实现了最基本的功能,同Qt on Android蓝牙通信开发一样,有蓝牙列表显示+接收和发送和蓝牙控制的基本功能。下一步就进行蓝牙通信的开发介绍。

a28b4aa03907b1debac346424e11352a.png

1.1 蓝牙开发架构

如图所示,为蓝牙Activity的界面,里面包含了,TextView,ListView,LineEdit,和一些按钮,使用的是相对布局,为该蓝牙开发提供最基本的功能控制。

5ff7d0d0796c8b7e7a3b62c873b083ba.png

XML布局代码如下:

android:layout_height="match_parent"

android:layout_width="match_parent">

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical" >

android:id="@+id/tv_bluelist"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:paddingTop="10dp"

android:text="Bluetooth List:"

android:textColor="#000"

android:textSize="15dp"

/>

android:id="@+id/lv_bluelist"

android:layout_width="match_parent"

android:layout_height="160dp"

android:paddingTop="1dp"

android:layout_marginTop="5dp">

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Recv display:"

android:textColor="#000"

android:textSize="15dp"

android:layout_marginTop="5dp"

/>

android:id="@+id/tv_recv"

android:layout_width="match_parent"

android:layout_height="160dp"

android:layout_marginTop="5dp"

android:textColor="#000"

/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:text="Send:"

android:textColor="#000"

android:textSize="15dp"

android:layout_marginTop="5dp"

/>

android:id="@+id/et_send"

android:layout_width="match_parent"

android:layout_height="40dp"

android:layout_marginTop="5dp"

android:textColor="#000"

android:textSize="12dp"

/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

>

android:layout_width="match_parent"

android:layout_marginHorizontal="10dp"

>

android:id="@+id/btn_send"

android:layout_width="120dp"

android:layout_height="wrap_content"

android:text="Send" />

android:id="@+id/btn_disconnect"

android:layout_width="120dp"

android:layout_height="wrap_content"

android:text="Disconnect" />

android:id=

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值