1
ウェブサイトhttp://www.ssaurel.com/blog/learn-how-to-make-a-compass-application-for-android/のコンパスコードを使用しています。 実際に私は新しいコンパスアプリケーションを開発しています。私はエラーが発生しています。 'LowPassFilter'シンボルを解決できません。すべての可能なファイルをインポートしましたが、同じエラーが発生しました。シンボル 'Lowpassfilter'を解決できません
@Override
public void onSensorChanged(SensorEvent event) {
boolean accelOrMagnetic = false;
// get accelerometer data
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
// we need to use a low pass filter to make data smoothed
smoothed = **LowPassFilter**.filter(event.values, gravity);
gravity[0] = smoothed[0];
gravity[1] = smoothed[1];
gravity[2] = smoothed[2];
accelOrMagnetic = true;
} else if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
smoothed = **LowPassFilter**.filter(event.values, geomagnetic);
geomagnetic[0] = smoothed[0];
geomagnetic[1] = smoothed[1];
geomagnetic[2] = smoothed[2];
accelOrMagnetic = true;
}
// get rotation matrix to get gravity and magnetic data
SensorManager.getRotationMatrix(rotation, null, gravity, geomagnetic);
// get bearing to target
SensorManager.getOrientation(rotation, orientation);
// east degrees of true North
bearing = orientation[0];
// convert from radians to degrees
bearing = Math.toDegrees(bearing);
// fix difference between true North and magnetical North
if (geomagneticField != null) {
bearing += geomagneticField.getDeclination();
}
// bearing must be in 0-360
if (bearing < 0) {
bearing += 360;
}
// update compass view
compassView.setBearing((float) bearing);
if (accelOrMagnetic) {
compassView.postInvalidate();
}
updateTextDirection(bearing); // display text direction on screen function
}
LowpassFilterはローパスフィルタを提供する別のクラスです(これは、低周波信号のみを通過させ、高い周波数信号をブロックするための工学用語なので、データの大きな変化は無視します)。あなたはあなたのアプリにもそれを含める必要があります、今はそうではありません。 –
私は可能なすべてのクラスを含めることを試みたが、私はまだあなたがどのクラスを教えてくれるか教えてください。 –
欠落したインポートではなく、ファイルがありません。しかしそれはあなたのせいではありません。チュートリアルを書いた人はそれを投稿しませんでした。 –