知识养成了思想,思想同时又在融化知识。这篇文章主要讲述智能小车七《上位机android》相关的知识,希望能为你提供帮助。
【智能小车七《上位机android》】接着上文的串口协议,本文再介绍下android端如何实现。现在程序员分工很明确,很多会C的不会java,会java不一定会开发android。而我的本职工作是开发java后台的,android的开发只能算个业余选手,但开发一个小车的控制程序还是可以的。
先介绍一下android的开发环境,Android Studio。如下图:
文章图片
我们新建一个项目后,主要的要改的文件都在这个main文件夹中。java文件夹是.java文件,放程序逻辑。res文件放用于界面展示的配置文件,AndroidManifest.xml是配置整个项目的权限,入口代码等。
我的设计是这样,进去的第一个界面先展示蓝牙列表与控制按钮。选择蓝牙连接上后,隐藏蓝牙列表,界面就只有控制按钮了。下面的进度条样子的控件是用于利用android的pwm功能来设置速度。
文章图片
连接上蓝牙后:
文章图片
这里面设置很多小的技术点,如设置横屏,如何隐藏控件,控件如何自适应屏幕大小。这些在专业的android程序员眼可能都不是事,但我做时还是用了不少时间查的。比如隐藏后如何自动适应屏幕,我用的是相对布局。这个可以看黑马程序员的android的视频课程。
这里介绍一个简单而重要的技术点,蓝牙如何保持连接?在实际的操作过程中,使用者可能会发现蓝牙会无缘无故断掉。一开始我只有重启app再连接,真到改了如下几行代码:
try {
os.write(msg.getBytes());
} catch (IOException e) {
e.printStackTrace();
//发送发生异常,重连Socket
System.out.println("发送发生异常,重连Socket");
connectSocket(lvDevices);
}
解释一下os是OutputStream,蓝牙的输出流。msg是要发送的消息内容。如果发生异常就再去连接蓝牙。其实最好的是连接之后再发送一次内容。
好了,一个简单的控制程序就介绍完了。
推荐阅读
- Android零基础入门第33节(Android事件处理概述)
- Android自己定义控件--圆形进度条(中间有图diao)
- React Native for Android 热部署图片自己定义方案
- Android View框架的measure机制
- ESP8266 wifi 模块配置,Wechat+APP控制实现
- Android第一次项目
- [转]Android-Studio 常用配置项
- Android Gallery和ImageSwitcher同步自动(滚动)播放图片库
- androidSDK配置环境变量