我已进入2500个步骤,因为手动步骤以下是响应:
StepsRecord(startTime=2025-02-04T10:24:12.681Z, startZoneOffset=null, endTime=2025-02-04T10:54:12.682Z, endZoneOffset=null, count=2500, metadata=Metadata(id='c9196ccf-9fa5-4557-9651-7cdcb953ebeb', dataOrigin=DataOrigin(packageName='com.google.android.apps.fitness'), lastModifiedTime=2025-02-04T10:54:34.455Z, clientRecordId=null, clientRecordVersion=0, device=null, recordingMethod=0))
现在我诚实的进入自动输入如下
StepsRecord(startTime=2025-02-04T02:13:42.690Z, startZoneOffset=null, endTime=2025-02-04T02:14:42.691Z, endZoneOffset=null, count=20, metadata=Metadata(id='9752d916-b8f3-4c21-9a19-0e9471098346', dataOrigin=DataOrigin(packageName='com.google.android.apps.fitness'), lastModifiedTime=2025-02-04T02:31:05.696Z, clientRecordId=null, clientRecordVersion=0, device=null, recordingMethod=0))
任何专家Android Dev请提供帮助。预先感谢
counce可以获得数据,我们必须进一步判断并设定一个阈值,以判断用户的行为是否合规,但我们需要考虑如何设置数据,因为有很多因素,我只发表意见,您可以计算计算每分钟的步骤数,并确定平均每分钟的平均步数在合理范围内。如果平均步骤数为异常,则会跳过记录。
const val MIN_STEPS_PER_MINUTE = 0
const val MAX_STEPS_PER_MINUTE = 200
fun processStepsRecords(response: Response): Int {
var totalSteps = 0
for (record in response.records) {
if (record.metadata.recordingMethod == RECORDING_METHOD_AUTOMATICALLY_RECORDED) {
val startTime = Instant.parse(record.startTime)
val endTime = Instant.parse(record.endTime)
val durationInMinutes = ChronoUnit.MINUTES.between(startTime, endTime)
if (durationInMinutes > 0) {
val stepsPerMinute = record.count / durationInMinutes
if (stepsPerMinute in MIN_STEPS_PER_MINUTE..MAX_STEPS_PER_MINUTE) {
totalSteps += record.count
} else {
Timber.w("Invalid steps per minute detected: $stepsPerMinute. Skipping this record.")
}
} else {
Timber.w("Zero duration detected between start and end time. Skipping this record.")
}
}
}
Timber.d("total_steps_after_Wallet_creation:::$totalSteps")
return totalSteps
}