次のコードをコンパスを使用するように変更しようとしていますが、問題が発生しています。SensorEventListener を使用しようとしましたが、失敗しました。私が従うかもしれないチュートリアルはありますか?どんな助けでも大歓迎です。
private static SensorListener orientationListener;
private static boolean isTrackingOrientation = false;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
orientationListener = new SensorListener() {
public void onSensorChanged(int s, float v[]) {
float northDirection = v[android.hardware.SensorManager.DATA_X];
((QiblaCompassView)findViewById(R.id.qibla_compass)).setDirections(northDirection, VARIABLE.qiblaDirection);
}
public void onAccuracyChanged(int s, int a) {
}
};
}
@Override
public void onResume() {
startTrackingOrientation();
super.onResume();
}
@Override
public void onPause() {
stopTrackingOrientation();
super.onPause();
}
private void startTrackingOrientation() {
if(!isTrackingOrientation) isTrackingOrientation = ((SensorManager)getSystemService(SENSOR_SERVICE)).registerListener(orientationListener, android.hardware.SensorManager.SENSOR_ORIENTATION);
}
private void stopTrackingOrientation() {
if(isTrackingOrientation) ((SensorManager)getSystemService(SENSOR_SERVICE)).unregisterListener(orientationListener);
isTrackingOrientation = false;
}