儿童手表定位,活动范围监控——修改版 原创 精华
前言
为什么还会有修改版的儿童手表定位,活动范围监控呢?因为上一个项目虽然已经实现了,但是不实用。原因就是如果不是特地去查询该地方的经纬度,没有谁会准确知道这个地方的经纬度,那么就不能设定活动范围了。再者,上一个项目的活动范围设置只能是矩形范围,但是只有极少数的地方是规则的矩形范围,所以并不实用。所以针对此原因,并且对场景进行细分,有了如下两个修改版:
场景一:小孩在小区玩,家长设定活动范围即为该小区,孩子离开小区时提醒家长。
场景二:孩子和家长一起外出,家长设定孩子离自己的距离,超过该设定距离时提醒家长。
概述
场景一效果图如下:
![]() |
![]() |
![]() |
![]() |
场景二效果图如下: | |||
- | - | - | - |
![]() |
![]() |
![]() |
![]() |
正文
一、实现场景一
1. 复制上一个项目代码
创建一个名为ChildrenLocation2的Empty Java Phone应用。
按儿童手表定位,活动范围监控完善ChildrenLocation2。
2. 修改家长端设备界面布局
在ability_phone.xml中编写以下代码。
删除三个文本输入框,并修改标识符id。
3. 重写getRange()函数。
在MainAbilitySlice.java中编写以下代码。
通过getText()方法获取设置的活动范围,通过contains()方法判断PlaceName与设置的活动范围的关系,如果PlaceName不在设置的活动范围内则通过startAbility方法播放音频,否则通过stopAbility方法停止播放音频。
二、实现场景二
1. 复制上一个项目代码
创建一个名为ChildrenLocation3的Empty Java Phone应用。
按儿童手表定位,活动范围监控完善ChildrenLocation2。
2. 修改家长端设备界面布局
在ability_phone.xml中编写以下代码。
删除三个文本输入框,并修改标识符id。
3. 重写getRange()函数。
在MainAbilitySlice.java中编写以下代码。
添加两个变量Longitude_phone和Latitude_phone,并初始化为“null”,用于记录家长端设备的经纬度信息。通过location.getLongitude()方法获取经度信息,通过location.getLatitude()方法获取纬度信息。
通过getText()方法获取设置的活动距离,通过两个位置的经纬度计算其距离,并与设置的活动距离进行比较大小。根据大小关系通过startAbility方法播放音频,通过stopAbility方法停止播放音频。
写在最后
更多资料请关注我们的项目 : Awesome-Harmony_木棉花
本项目会长期更新 ,希望随着鸿蒙一同成长变强的既有我们,也有正在看着这个项目的你。明年3月,深大校园内的木棉花会盛开,那时,鸿蒙也会变的更好,愿这花开,有你我的一份。
很实用的设计,修改的地方也确实是为家长考虑。
谢谢(#^.^#)
这个电子围栏功能可以扩展到很多场景
谢谢侬
好实用的场景
支持支持、、、