Датчик TYPE_STEP_COUNTER не найден в NEXUS5X 29API
Я делаю проект счетчика шагов в студии Android с Nexus5X API29. Мне нужно использовать датчики для этого. Я написал коды датчиков, как показано ниже, но все равно выдает ошибку «Датчик не найден». Есть ли способ исправить это?
public class MainActivity extends AppCompatActivity implements SensorEventListener {
TextView tv_steps;
SensorManager sensorManager;
Sensor sensor;
boolean running = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate ( savedInstanceState );
setContentView ( R.layout.activity_main );
tv_steps = (TextView) findViewById ( R.id.tv_steps );
sensorManager = (SensorManager) getSystemService ( Context.SENSOR_SERVICE);
}
@Override
protected void onResume() {
super.onResume ();
running = true;
Sensor countSensor = sensorManager.getDefaultSensor ( sensor.TYPE_STEP_COUNTER );
if(countSensor!= null){
sensorManager.registerListener ( this,countSensor,SensorManager.SENSOR_DELAY_UI );
}else {
Log.d ("Main Activity","SENSOR NOT FOUND" );
}
}
@Override
protected void onPause() {
super.onPause ();
running = false;
//if you unregister the hardware will stop detecting steps
}
@Override
public void onSensorChanged(SensorEvent event) {
if (running){
tv_steps.setText ( String.valueOf ( event.values[0] ) );
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
В файле манифеста я также реализую такое разрешение:
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" android:required="true"/>
1 ответ
Я предлагаю вам протестировать это приложение на реальном устройстве. Обычно эмуляторы не имеют определенных функций, таких как датчики или преобразование текста в речь.
Если это все еще не работает, убедитесь, что на вашем физическом устройстве есть датчики шагов.