安卓怎么才能一天就拿到传感器步数数据呢?
原学程将引见安卓怎样能力1天便拿到传感器步数数据呢?的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。
成绩描写
我想夺取APP用户的步数数据,但是夺取的数据没有是当天的数据,怎样能力夺取独一确当天数据?
public StepCounterRecord(ReactApplicationContext reactContext) {
mSensorManager = (SensorManager)reactContext.getSystemService(reactContext.SENSOR_SERVICE);
mReactContext = reactContext;
}
public int start(int delay) {
this.delay = delay;
if ((mStepCounter = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER)) != null) {
mSensorManager.registerListener(this, mStepCounter, SensorManager.SENSOR_DELAY_FASTEST);
return (一);
}
return (0);
}
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
Sensor mySensor = sensorEvent.sensor;
WritableMap map = mArguments.createMap();
if (mySensor.getType() == Sensor.TYPE_STEP_COUNTER) {
long curTime = System.currentTimeMillis();
i++;
if ((curTime - lastUpdate) > delay) {
i = 0;
map.putDouble("steps", sensorEvent.values[0]);
sendEvent("StepCounter", map);
lastUpdate = curTime;
}
}
}
推举谜底
Sensor.TYPE_STEP_COUNTER前往自前次从新开动以去用户在激活时履行的步调数。
是以,假如您想获得明天的步调,您应当经由过程编程停止盘算。
上面的代码是我对于Calcualte It的设法主意
private int milestoneStep;
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
int totalStepSinceReboot = sensorEvent.values[0];
int todayStep = getPreferences(today());
if(todayStep == 0){
milestoneStep = totalStepSinceReboot;
}else{
int additionStep = totalStepSinceReboot - milestoneStep;
savePreferences(today(), todayStep + additionStep);
milestoneStep = totalStepSinceReboot;
Log.i("TAG","Your today step now is "+getPreferences(today()));
}
}
private void savePreferences(String key, int value) {
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt(key, value);
editor.co妹妹it();
}
private void getPreferences(String key){
SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE);
return; = sharedPreferences.getInt(key, 0);
}
public String today() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(Calendar.getInstance().getTime());
}
佳了闭于安卓怎样能力1天便拿到传感器步数数据呢?的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。