java - 安卓计步器
问题描述
我正在尝试制作一个简单的 Android 应用程序来计算步数。当我运行应用程序时,在 onResume 方法中调用了 else,这意味着它没有找到传感器。我正在运行 Api 22 的 2016 年三星 J3 上进行测试。我想知道是我的代码有问题还是手机没有传感器。如果是手机,有解决办法吗?
public class MainActivity extends AppCompatActivity implements SensorEventListener
{
private TextView counterTextView;
private SensorManager sensorManager;
private boolean isWalking;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
counterTextView = findViewById(R.id.counterTextView);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
}
@Override
protected void onResume()
{
super.onResume();
isWalking = true;
Sensor countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
if(countSensor != null)
{
sensorManager.registerListener(this, countSensor, SensorManager.SENSOR_DELAY_UI);
}
else
{
counterTextView.setText("WARNING SENSOR NOT FOUND");
}
}
@Override
protected void onPause()
{
super.onPause();
isWalking = false;
}
@Override
public void onSensorChanged(SensorEvent event)
{
if(isWalking)
{
counterTextView.setText(String.valueOf(event.values[0]));
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy)
{
}
}
解决方案
对于与我处于相同情况的任何人,这是我使用的设备。如果您想使用所有设备,您可以使用加速度计。
推荐阅读
- java - 为什么这段带有两个 for 循环的代码没有 O(N^2) 的 Big O 运行时间?
- java - 一种允许测试人员在 Selenium Grid 上运行测试的方法
- rest - 在salesforce 营销云中,如何进行REST api 调用?如何建立网址?
- java - 如何将不同的回调传递给android中的同一个函数
- java - Appium IOS 在 1.8.1 上测试很慢
- html - 似乎无法正确识别 CSS/Bootstrap
- hyperledger-fabric - 认可链码时出错:rpc 错误
- java - Java字符串获取空格后的字符
- android - Framelayout变得不可见但仍然占用空间
- c# - 在 mscorlib.dll 中发生“System.ArgumentException”