VMOS Cloud API
  • 简体中文
  • English
  • 简体中文
  • English
  • 产品介绍
  • 产品类型
  • 产品计费
  • OpenAPI
    • 使用指南
    • 接口文档
    • 错误码
    • 实例属性列表
    • 安卓改机属性列表
    • 回调任务业务类型码
    • 更新日志
  • Android端 SDK
    • 示例搭建
    • 接口说明
    • 回调函数
    • 错误码
    • 更新日志
  • Web H5端 SDK
    • 示例搭建
    • 接口说明
    • H5 SDK 回调函数
    • 错误码
    • 更新日志
  • Windows PC端 SDK
    • 示例搭建
    • 接口说明
    • 回调函数
    • 更新日志
  • 端侧与云机通信开发
    • AIDL接入方式
    • 系统服务API(aidl)
  • 类XP、LSP Hook框架
    • 类Xposed、LSPosed框架
    • 传感器数据动态仿真
  • 相关协议

以下为您整理的 VMOSCLOUD 云手机传感器动态仿真指南。该功能允许通过模拟真实的传感器数据文件,为云手机应用提供逼真的物理环境交互能力。


1. 功能简介

VMOSCLOUD 云手机支持对移动设备的各类传感器进行动态数据仿真。通过向系统注入预定义的数据文件,开发者可以模拟设备的运动、位置、环境变化及生物特征,适用于游戏测试、导航模拟、健康应用开发等场景。


2. 支持的传感器类型与格式详解

为了方便查阅,以下将传感器分为四大类。请在数据文件中使用对应的格式字符串。

2.1 运动与姿态传感器 (Motion & Pose)

传感器名称标识符 (Key)数据格式单位应用场景
加速度计accelerationx:y:zm/s²重力感应游戏、屏幕旋转
线性加速度linear-accelerationx:y:zm/s²手势识别 (去重力)
未校准加速度acceleration-uncalibratedx:y:zm/s²原始数据分析
陀螺仪gyroscopex:y:zrad/s3D 游戏、VR/AR
未校准陀螺仪gyroscope-uncalibratedx:y:zrad/s原始角速度数据
重力传感器gravityx:y:zm/s²水平仪、姿态检测
旋转向量rotation-vectorx:y:z-3D 姿态控制 (四元数)
游戏旋转向量game-rotation-vectorx:y:z-游戏控制 (无磁力计)
地磁旋转向量geomagnetic_roationx:y:z-指南针、导航
方向传感器orientationazimuth:pitch:roll度(已废弃) 建议用旋转向量

2.2 位置与环境传感器 (Position & Environment)

传感器名称标识符 (Key)数据格式单位应用场景
磁力计magnetic-fieldx:y:zμT指南针、金属探测
未校准磁力计magnetic-field-uncalibratedx:y:zμT原始磁场数据
光线传感器lightvaluelux屏幕亮度自动调节
距离传感器proximitydistancecm通话息屏
温度传感器temperaturevalue℃温度监控 (需机型支持)
气压传感器pressurevaluehPa高度测量、天气
湿度传感器humidityvalue%环境监测 (需机型支持)

2.3 运动检测与生物传感器 (Detection & Bio)

传感器名称标识符 (Key)数据格式单位/值应用场景
计步器step-countercount步数运动健康
步行检测step-detectorvalue1.0实时步行检测
显著运动significant-motionvalue1.0省电模式触发
通用运动motion-detectvalue1.0安全监控
倾斜检测tilt-detectorvalue1.0唤醒、方向锁定
拿起手势pick-upvalue1.0自动亮屏
心率heart-ratebpmBPM健康监测 (需机型支持)
手腕倾斜wrist-tiltvalue:measurementId-智能穿戴手势

2.4 可折叠设备专用 (Foldable)

仅在模拟可折叠机型(如 Galaxy Fold, Mate X)时有效。

传感器名称标识符 (Key)数据格式单位说明
铰链角度hinge-angle0 (至 2)angle度模拟屏幕折叠角度

3. 使用方法与配置流程

通过设置系统属性指向一个本地数据文件,即可驱动传感器。

3.1 核心指令

Bash

# 设置传感器数据文件路径
adb shell setprop persist.sys.cloud.sensor.tpl_dp /data/local/tmp/sensor_data.txt

# 停止仿真 (清空属性)
adb shell setprop persist.sys.cloud.sensor.tpl_dp ""

3.2 数据文件规范

  • 文件编码:UTF-8
  • 权限:文件必须可读 (建议 chmod 644)
  • 大小限制:最大 1GB
  • 基本结构:传感器数据行 + 延时指令行 (delay:毫秒)

文件内容示例:

Plaintext

# 模拟向左倾斜
acceleration:-5.62:2.94:7.21
gyroscope:-0.62:-0.12:0.12
delay:50

# 模拟向右倾斜
acceleration:5.62:2.94:7.21
gyroscope:0.62:0.12:-0.12
delay:50

4. 场景实战:如何进行仿真

场景一:模拟设备旋转 (Python生成数据)

此场景用于测试应用在设备旋转时的 UI 适配或游戏控制。

  1. 生成数据:使用 Python 脚本生成 0-360 度的旋转数据。

    Python

    import math
    
    with open('rotation.txt', 'w') as f:
        for angle in range(0, 361, 5):
            rad = math.radians(angle)
            # 模拟 X/Z 轴重力分量变化
            acc_x = 9.8 * math.sin(rad)
            acc_z = 9.8 * math.cos(rad)
            f.write(f"acceleration:{acc_x:.6f}:0.000000:{acc_z:.6f}\n")
            f.write("delay:100\n")
    
  2. 注入数据:

    Bash

    adb push rotation.txt /data/local/tmp/
    adb shell setprop persist.sys.cloud.sensor.tpl_dp /data/local/tmp/rotation.txt
    
  3. 验证:重启目标应用,观察界面是否随数据旋转。

场景二:模拟“摇一摇”手势

用于测试微信摇一摇等功能。

  1. 创建数据文件 (shake.txt):

    Plaintext

    # 剧烈左晃
    acceleration:-19.0:0.0:5.0
    gyroscope:0.0:0.0:8.0
    delay:80
    # 剧烈右晃
    acceleration:19.0:0.0:5.0
    gyroscope:0.0:0.0:-8.0
    delay:80
    # 回归静止
    acceleration:0.0:0.0:9.8
    gyroscope:0.0:0.0:0.0
    delay:200
    
  2. 执行仿真:

    Bash

    adb push shake.txt /data/local/tmp/
    adb shell setprop persist.sys.cloud.sensor.tpl_dp /data/local/tmp/shake.txt
    # 启动应用测试
    adb shell am start com.tencent.mm/.ui.LauncherUI
    

5. 最佳实践与注意事项

数据优化建议

  • 平滑过渡:避免数值突变。在两个状态之间(如静止到运动)使用插值算法生成过渡数据,防止应用逻辑出错。
  • 合理延时:
    • 游戏/VR:delay:16 (约 60Hz)
    • 导航:delay:200 - 1000 (1-5Hz)
    • 常规应用:delay:50 - 100 (10-20Hz)
  • 物理常识:
    • 静止时加速度计 Z 轴应约为 9.8 m/s²。
    • 磁力计强度通常在 25-65 μT 之间。

常见问题排查 (Troubleshooting)

问题现象可能原因解决方案
应用无响应权限不足或未重启1. 确保应用有传感器权限。 2. force-stop 强行停止并重启应用以重新注册 SensorListener。
仿真不生效文件路径或权限错误1. 检查 setprop 路径是否正确。 2. 执行 adb shell chmod 644 <文件路径>。
特定传感器无效机型不兼容关键点:云手机模拟的机型必须支持该硬件。例如 humidity、heart-rate 或 hinge-angle 仅在特定机型模板(如三星高端机、折叠屏)下有效。请检查云机实例配置。
动作卡顿采样率过低减小文件中的 delay 数值。

下一步建议

如果您需要采集真实的复杂运动数据(如跑步、驾驶),建议编写一个简单的 Android 工具应用安装在真机上,使用 SensorManager 监听并将数据按上述格式写入文本文件,然后直接导入云手机使用。这将比脚本生成的数据更加逼真。

Prev
类Xposed、LSPosed框架