首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计步器,SensorListener为空

计步器,SensorListener为空
EN

Stack Overflow用户
提问于 2016-04-05 00:50:43
回答 1查看 346关注 0票数 0

因此,我正在为一个带有安卓系统的类做一个项目,其中我们使用了虚拟传感器计步器,但我们有这个错误:“SensorListener is null”。

代码语言:javascript
复制
private SensorManager mSensorManager;
private Sensor stepDetector;
private Sensor accelerometer;
private Sensor magnetometer;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_step_monitor);



    mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
    stepDetector = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR); 
    accelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    magnetometer = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);

protected void onResume() {
    super.onResume();
    mSensorManager.registerListener(this, stepDetector, SensorManager.SENSOR_DELAY_FASTEST); // problem
    mSensorManager.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_UI);
    mSensorManager.registerListener(this, magnetometer, SensorManager.SENSOR_DELAY_UI);
}

protected void onPause() {
    super.onPause();

    mSensorManager.unregisterListener(this);
}
EN

回答 1

Stack Overflow用户

发布于 2016-04-05 01:24:08

你能在初始化stepDetector, accelerometer, magnetometer的地方分享你的代码吗?

一些基本关键点是:

1)您的类必须实现SensorEventListener及其所有方法:

代码语言:javascript
复制
public class myClass implements SensorEventListener{ }

2)然后,您必须初始化要使用的传感器,如下所示:

代码语言:javascript
复制
SensorManager mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor accelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)

3)按如下方式注册传感器:

代码语言:javascript
复制
if(accelerometer!=null){
    mSensorManager.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
} //you will get the sensor as null if phone does not have it

4)最后使用此命令取消注册:

代码语言:javascript
复制
mSensorManager.unregisterListener(this, accelerometer);

希望这能有所帮助

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36408433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档