磁力計にアクセスしたいアプリがあります。アプリケーションから結果を取得しますが、g1 のコンパス アプリからのオリエンテーション結果と比較すると、コンパス アプリとは完全に異なる結果が得られます。例: 私のアプリは 250° で、コンパス アプリは 90° です! それはできません。これが私のコードです。より良い結果になるために何か違いはありますか?
public class MySensorListener implements SensorListener{
int orientation;
public MySensorListener(){
orientation = 0;
}
public void onAccuracyChanged(int sensor, int accuracy) {
// TODO Auto-generated method stub
}
public void onSensorChanged(int sensor, float[] values) {
orientation = (int)values[0];
}
}
次のように Sensormanager にアクセスします。
private MySensorListener doCompass(){
MySensorListener cl;
SensorManager cm;
compassListener = new MySensorListener();
cm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
cm.registerListener(
cl,
SensorManager.SENSOR_ORIENTATION,
SensorManager.SENSOR_DELAY_UI); //updateRate
return cl;
}
誰か助けてくれませんか?! :)
ありがとうございました