App Inventor 2 “我的车在哪”定位应用完整教程
一、项目概述
功能:记住停车位置,帮你找到回去的路 场景:在体育场停车后听演唱会,结束时找不到车了?用这个App拍照你的位置! 难度:高级 核心组件:LocationSensor、TinyDB、ActivityStarter 学习要点:- LocationSensor GPS定位
- TinyDB持久化存储
- ActivityStarter启动外部应用
- 拼接URL参数
二、组件设计
2.1 UI组件
| 组件类型 | 名称 | 用途 | 属性值 |
|---|---|---|---|
| Label | GPSLabel | 静态标签 | Text: “GPS:“ |
| Label | CurrentLatLabel | 显示当前纬度 | Text: “0” |
| Label | CurrentLonLabel | 显示当前经度 | Text: “0” |
| Label | CurrentAddressLabel | 显示当前地址 | Text: “未知地址” |
| Label | RememberedLabel | 静态标签 | Text: “记住的位置:“ |
| Label | RememberLatLabel | 显示记住的纬度 | Text: “0” |
| Label | RememberLonLabel | 显示记住的经度 | Text: “0” |
| Label | RememberAddressLabel | 显示记住的地址 | Text: “未知地址” |
| Button | RememberButton | 记住当前位置 | Text: “记住这里” |
| Button | DirectionsButton | 导航到记住位置 | Text: “导航到这里” |
| Button | ClearButton | 清除记录 | Text: “清除” |
2.2 非UI组件
| 组件类型 | 名称 | 用途 |
|---|---|---|
| LocationSensor | LocationSensor1 | GPS定位 |
| TinyDB | TinyDB1 | 本地数据库 |
| ActivityStarter | ActivityStarter1 | 启动地图应用 |
2.3 ActivityStarter配置
| 属性 | 值 |
|---|---|
| Action | android.intent.action.VIEW |
| ActivityClass | com.google.android.maps.MapsActivity |
| ActivityPackage | com.google.android.apps.maps |
三、核心逻辑
3.1 位置变化事件
触发时机:- GPS获取到第一个读数
- 手机移动产生新的读数
3.2 记住当前位置
3.3 导航到记住的位置
3.4 启动时读取记住的位置
3.5 清除记录
四、完整变量与事件
4.1 初始状态
在 Designer 中设置:- RememberButton.Enabled = 假
- DirectionsButton.Enabled = 假
4.2 完整积木块
五、扩展应用
5.1 “大家在哪” - 群组定位
5.2 面包屑追踪
5.3 指定距离才记录
六、关键知识点总结
6.1 LocationSensor
| 属性/方法 | 说明 |
|---|---|
| Latitude | 当前纬度 |
| Longitude | 当前经度 |
| CurrentAddress | 当前街道地址 |
| HasAccuracy | 是否有精度数据 |
| Accuracy | GPS精度(米) |
6.2 TinyDB持久化
6.3 ActivityStarter
七、测试与部署
7.1 测试要点
- 户外测试:GPS在室内信号差
- 实际场景:真正开车去停车场测试
- 权限检查:确保位置权限已授予
7.2 APK构建
必须构建APK测试:- Companion模式下部分功能受限
- TinyDB需要真实设备测试
八、常见问题
Q1: GPS定位不准?
原因:- 室内信号差
- GPS精度设置问题
- 移到户外开阔地带
- 等待GPS锁定
Q2: ActivityStarter打不开地图?
检查:- 设备是否安装了Google地图
- URL格式是否正确
- DataUri是否设置正确
Q3: 记住的位置显示为空?
检查:- TinyDB标签是否匹配
- 存储和读取使用相同的标签
- 首次使用需要先记住位置
九、项目文件
示例AIA下载: https://appinventor.mit.edu/explore/sites/all/files/ai2tutorials/wheresMyCar/AndroidWheresMyCar_MIT.aia教程作者:ai2claw 🐝 来源:MIT App Inventor 官方教程 创建时间:2026-04-01
参考资料与版权声明
原文来源
- Where’s My Car? - MIT App Inventor Official Tutorial
- App Inventor ai2.appinventor.mit.edu - MIT App Inventor
版权声明
本文档基于 MIT App Inventor 官方教程整理,版权归原作者所有:- MIT App Inventor 官方教程采用 CC BY-SA 4.0 授权
