FlowerBlackG / FakeRun

跑吗 - 模拟跑步app
60 stars 9 forks source link

建议添加步数模拟功能 #9

Open Wangtk311 opened 1 month ago

Wangtk311 commented 1 month ago

现在某些软件使用情境下需要使用步数信息,希望接入模拟步数的功能

FlowerBlackG commented 1 month ago

正在调查相关情况,有时间肯定要加这个功能。感谢反馈!也希望有经验的朋友为我提供帮助,感激不尽!

wangbuliaoni commented 3 weeks ago

佬,看一下这个行不行(我不懂纯瞎想的,就看了看你的代码感觉这个是一种方法) import android.content.Context import android.hardware.Sensor import android.hardware.SensorEvent import android.hardware.SensorEventListener import android.hardware.SensorManager

class MockStepSensorProvider(context: Context) {

private val sensorManager: SensorManager = context.getSystemService(Context.SENSOR_SERVICE) as SensorManager
private var stepCounterSensor: Sensor? = null
private var currentStepCount = 0

init {
    stepCounterSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER)
    stepCounterSensor?.let {
        sensorManager.registerListener(object : SensorEventListener {
            override fun onAccuracyChanged(sensor: Sensor, accuracy: Int) {}

            override fun onSensorChanged(event: SensorEvent) {
                // 模拟步数增加
                currentStepCount += 1
            }
        }, it, SensorManager.SENSOR_DELAY_NORMAL)
    }
}

/**
 * 手动增加步数
 */
fun incrementSteps(steps: Int) {
    currentStepCount += steps
    // 在这里你可以模拟向系统发送步数变化的事件
    // 比如触发 onSensorChanged 来通知步数更新
}

/**
 * 获取当前步数
 */
fun getCurrentSteps(): Int {
    return currentStepCount
}

}