如何在Android设备中模拟步数传感器?

6

我希望能够模拟用户的步行并计算他们的步数,以进行自动化测试。

我尝试搜索解决方案,但只找到了模拟位置


步数计数器不是真正的硬件功能,因为它依赖于GPS。步数的计算结果来自于处理加速度计数据,所以我认为没有办法模拟它们。你必须走路才能计算步数。 - Joaquin Iurchuk
据我所知,现在步数计数器不仅使用加速度计,很多制造商也会更新其新款手机的传感器集线器。而且从Android 4.4开始,有API可获取步数计数器数据。 - alwaysday1
1个回答

1
这很容易,因为实际上该传感器返回一个浮点数,描述了用户自上次重启以来激活时所走的步数。
所以最简单的实现方法将包括一个仅在一些现实约束条件下(1到9999步之间)生成随机浮点数的方法:
public float generateStepsCount(){
        float minVal = 1.0f;
        float maxVal = 9999.0f;

        Random rand = new Random();

        return rand.nextFloat() * (maxVal - minVal) + minVal;
    }

PS:自API 19以来,TYPE_STEP_COUNTER一直存在。


有趣的是...我想强调这种方法是在API 19上引入的。 - Joaquin Iurchuk
@ViktorMalyi 谢谢你的回答。我知道我们可以模拟计数器传感器的返回数字。但是我需要的是更改存储在“真实”传感器设备中的值。 - alwaysday1
1
@liweijian 先获取它,然后进行修改:mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); mStepCounter = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER); - Viktor Malyi
2
@ViktorMalyi,实际上我需要模拟用户的步行,并向传感器中心发送一些信号,告诉它更新步数计数。 - alwaysday1
1
@lit2019 我遇到了类似的问题... 你找到解决办法了吗? - Rujoota Shah
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接