我正在使用Expo在React Native中设置一个计步器应用程序,并在我真正的Samsung s10设备上测试代码。
I am using the Expo Pedometer documentation
但是,当我使用Pedometer.getStepCountAsync
方法时,返回了一个错误“ Android尚不支持获取日期范围的步骤计数。”
我正在尝试制作一个计步器应用程序,该程序可以读取用户的步骤,然后将其显示给用户,但我无法获取步骤数据。
我的代码如下:到达错误=>行并返回上述错误。 :(
我已在Google Developer Console中启用了Fitness API,并且99%确信我拥有正确的凭据;因为我已经在同一应用中成功使用了Google登录名。
const end = new Date();
const start = new Date();
start.setDate(end.getDate() - 1);
Pedometer.getStepCountAsync(start, end).then(
result => {
this.setState({ pastStepCount: result.steps });
},
error => {
this.setState({
pastStepCount: "Could not get stepCount: " + error
});
}
);
我想预期的结果是我从结果中得到了过去一天的用户操作,但是却收到了android不支持的错误信息。
答案 0 :(得分:0)
是,通过使用Core Motion(iOS)或Google Fit(Android)来获取用户的步数。 任何运行4.4(KitKat)操作系统或更高版本的Android手机都可以与Google Fit连接。
Pedometer unable to query steps, documentation unclear/contradictory.
答案 1 :(得分:0)
我做了一些令人讨厌的解决方法,但它确实有效,我将expo 33添加为旧的npm依赖项,并仅从那里使用计步器模块,因为当前他们尚未在新的Expo unimodules上的android上实现计步器功能
package.json
"expo": "^35.0.0",
"expo-legacy": "npm:expo@33.0.0",
并像这样使用它
import {Pedometer} from 'expo-legacy'
令人惊讶地编译,并且apk大小仅增加了200kb