# Sample **Repository Path**: zzzzl-top/sample ## Basic Information - **Project Name**: Sample - **Description**: ArkTs demo - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-14 - **Last Updated**: 2023-10-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 移动状态感知 ### 介绍 本示例使用 [Movement](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-textarea.md) 实现感知用户移动状态的功能,使用 [@ohos.movement](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-app-ability-common.md) 依赖传感器数据,识别用户当前的静止、走路、跑步、乘车、乘电梯、乘汽车、乘地铁、乘高铁的状态。 ### 效果预览 | 申请权限 | 订阅并上报静止 | 查询静止状态 | 取消订阅静止 | |-------------------------------------------------|-----------------------------------------------------|-------------------------------------------------|-----------------------------------------------| | ![edit.jpeg](screenshots%2Fdevices%2Fedit.jpeg) | ![adjust.jpeg](screenshots%2Fdevices%2Fadjust.jpeg) | ![crop.jpeg](screenshots%2Fdevices%2Fcrop.jpeg) | ![crop.jpeg](screenshots%2Fdevices%2Fcrop.jpeg) | 使用说明: 1. 授予应用权限; 2. 勾选需要订阅的移动状态服务; 3. 订阅服务; 4. 走路、跑步、乘车或保持静止; 5. 应用识别当前移动状态并上报,有声音和震动提示; 6. 点击查询查询当前识别到的移动状态; 7. 取消订阅勾选的服务; 8. 点击返回按钮,退出应用。 ### 工程目录 ``` entry/src/main/ets/ |---entryability | |---EntryAbility.ts // 首页 |---pages | |---Index.ets // 主页面 |---util | |---AvPlayerUtil.ets // 播放提示音 | |---Logger.ts // 日志打印 ``` ### 具体实现 + 移动感知功能在Index中实现,源码参考[Index.ets](entry%2Fsrc%2Fmain%2Fets%2Fpages%2FIndex.ets): + 移动感知:移动感知权限需要使用[requestPermissionsFromUser](https://gitee.com/openharmony/docs/blob/monthly_20221018/zh-cn/application-dev/reference/apis/js-apis-inner-application-uiAbilityContext.md) 申请,源码参考[EntryAbility.ts](entry/src/main/ets/EntryAbility/EntryAbility.ts)。 + 通过[@ohos.movement](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-app-ability-common.md)包中的movement对象来使用移动感知服务。 + 通过movement.on函数来订阅服务,参数有移动状态类型(包含静止、走路、跑步、乘车等)、事件(1表示只上报进入对应状态的事件,2表示只上报退出对应状态的事件,3表示进入和推出对应状态的事件都上报)、上报周期(最快多久上报一次事件,单位纳秒,最小值为1秒即1000000000纳秒)、收到上报事件的处理函数。 + 通过movement.once函数来查询当前服务识别到的移动状态,参数为移动状态类型和事件处理函数。 + 通过movement.off函数来取消订阅当前已订阅的移动状态服务,参数为移动状态类型、事件。 ### 相关权限 [ohos.permission.ACTIVITY_MOTION](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/permission-list.md) ### 依赖 不涉及。 ### 约束与限制 1. 本示例仅可在支持移动感知的标准系统上运行; 2. 本示例仅适配API version 10版本SDK,版本号:4.0.8.2,需要手动替换Full SDK才能编译通过,具体操作可参考[替换指南](https://docs.openharmony.cn/pages/v3.2/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md/); 3. 本示例需要使用DevEco Studio 4.0 Beta2 (Build Version: 4.0.0.400, built on August 2, 2023)及以上版本才可编译运行。 ### 下载 如需单独下载本工程,执行如下命令: ``` git init git config core.sparsecheckout true echo code/BasicFeature/Media/Image/ > .git/info/sparse-checkout git remote add origin https://gitee.com/openharmony/applications_app_samples.git git pull origin master ```