Block Editor里面各类模块代表的意义:
现在该考虑一下我们的Android软件要怎么运行,列出来需要哪些控件。
向前按钮、向后按钮、向左、向右、………,哦,不要这样吧,试一试手机的重力感应功能,通过手机体态传感器来控制小车显然比按按钮更酷一些。
简要流程图: 我的手机软件截图:
可能要添加的控件:
Button :按钮,用来触发某功能
Label: 标签,用来显示当前状态
BluetoothClient : 蓝牙控件,用来蓝牙配对、连接、通信。
Clock: 时钟,定时触发某程序段
OrientationSensor: 体态传感器,目前绝大多数的手机都有的,用来获取手机当前的状态(倾倒度数、斜率角度等等);
TinyDB :一款手机上的简易数据库控件,这里用来记录软件上次运行时配对过的蓝牙设备,便于选取。
Notifier :警示窗口,当软件运行出现意外时,提示信息,避免程序崩溃掉。
Arrangement :把按钮、Label等控件排列整齐
图文详解:
考虑更多的细节……
1、
程序初始化时:
应该检查体态传感器是否存在于手机,没有传感器的话,再往下也就没有执行的意义了;
时钟当前最好设置为关闭状态,因为蓝牙还没有连接呢,还不需要读取传感器、判断手机动作吧;
读取数据库,之前有没有配对过的蓝牙设备呢?有的话就列出出来,供我们下面选择,没有也得告诉一下我们吧;
这里借用一张图片:
(X轴: Pitch, Y轴: Roll, Z轴: Yaw, (App Inventor中称为Azimuth方位角).)