传感器数据存储以前的值,即使缓存已清除



我开发了simmple count steps应用程序,它在TextView上显示当前足迹,也在OnPause mathod上工作,以及在和上工作。

问题是,我想删除以前的数据,并从一开始计算步数,我清除了手机设置中的数据,但没有帮助。从安卓工作室加载的应用程序甚至再次显示0作为第一个值,然后在我使用它时显示300甚至更多。不知何故,传感器仍然拥有所有数据。

你能帮忙吗?

这是我的代码:

public class MainActivity extends AppCompatActivity implements SensorEventListener {
private final int PHYISCAL_ACTIVITY = 0;
private TextView Steps;
private SensorManager sensorManager;
private Sensor mCountStep;
// private boolean x;
int CountSteps;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (ContextCompat.checkSelfPermission(this,
Manifest.permission.ACTIVITY_RECOGNITION) == PackageManager.PERMISSION_DENIED) {
//ask for permission
requestPermissions(new String[]{Manifest.permission.ACTIVITY_RECOGNITION}, PHYISCAL_ACTIVITY);
}
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Steps = findViewById(R.id.textKroki);
sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
if (sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER) != null) {
mCountStep = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
//  x= true;
} else {
Steps.setText("NO SENSOR."); //x=false;
}
}

@Override
public void onSensorChanged(SensorEvent sensorEvent) {
if (sensorEvent.sensor == mCountStep) {
CountSteps = (int) sensorEvent.values[0];
Steps.setText(String.valueOf(CountSteps));
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
@Override
protected void onResume() {
super.onResume();
if (sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER) != null) {
sensorManager.registerListener(this, mCountStep, SensorManager.SENSOR_DELAY_NORMAL);
}
}
@Override
protected void onPause() {
super.onPause();
if (sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER) != null) {
sensorManager.unregisterListener(this, mCountStep);
}
}
@Override
protected void onDestroy() {
// deleteCacheData();
super.onDestroy();
}}

您使用的传感器是TYPE_STEP_COUNTER。根据developer.android.com的说法,这是预期的结果。传感器显示自上次传感器激活时重新启动以来用户所采取的步骤。

我想你要找的是TYPE_STEP_DETECTOR。

https://developer.android.com/guide/topics/sensors/sensors_motion

最新更新