如何解决无法为传感器上的 TYPE_MAGNETIC_FIELD 注册监听器
我正在使用这些代码
private SensorManager mSensorManager;
private Sensor mAccelerometer;
private Sensor mMagnetometer;
private float[] mGravity;
private float[] mMagnetic;
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mMagnetometer = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
mSensorManager.registerListener(sensorEventListener,mAccelerometer,SensorManager.SENSOR_DELAY_NORMAL);
mSensorManager.registerListener(sensorEventListener,mMagnetometer,SensorManager.SENSOR_DELAY_NORMAL);
sensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
switch (event.sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
mGravity = event.values.clone();
break;
case Sensor.TYPE_MAGNETIC_FIELD:
mMagnetic = event.values.clone();
break
default:
return;
}
}
@Override
public void onAccuracyChanged(Sensor sensor,int i) {
}
};
他们都在onResume
在开关
case Sensor.TYPE_ACCELEROMETER:
这条线工作得很好,但case Sensor.TYPE_MAGNETIC_FIELD:
这条线从来没有用过!
我已经将代码更改为此但仍然存在此问题
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ALL);
在我的手机中(仅我的手机)TYPE_MAGNETIC_FIELD 工作得很好,但其他人拨打这条线路 case Sensor.TYPE_MAGNETIC_FIELD:
不起作用
鳕鱼有问题吗?
这里是我的权限
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。