我試圖創建一個獨立的加速度計類,它保存加速計的值,並且我可以隨時從任何其他類訪問它們,但它似乎不起作用。Android加速計類
這裏是我的Accelerometer類:
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
public class Accelero implements SensorEventListener {
private float xAxis;
private float yAxis;
private float zAxis;
public float getX(){
return this.xAxis;
}
public float getY(){
return this.yAxis;
}
public float getZ(){
return this.zAxis;
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
public void onSensorChanged(SensorEvent event) {
xAxis = event.values[0];
yAxis = event.values[1];
zAxis = event.values[2];
}
}
所以你看,我想通過我創建get*();
方法得到的值。但它似乎總是返回0, 0, 0
。任何想法我的代碼有什麼問題?
這是,這是在使用的活動:
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.EditText;
public class MainActivity extends Activity {
private EditText output;
private static int DIS = 1;
Accelero acc;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
output =(EditText) findViewById(R.id.editText1);
handler.sendEmptyMessageDelayed(DIS, 1);
acc = new Accelero(this);
}
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == DIS){
refresh();
handler.sendEmptyMessageDelayed(DIS, 1);
}
}
};
public void refresh(){
output.setText("X:"+acc.getX()+"\nY:"+acc.getY()+"\nZ:"+acc.getZ());
}
}
我也有這個premission清單中:
<uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />
你註冊了聽衆嗎? – 2012-08-12 12:15:03
你可以顯示使用這個類的活動的代碼嗎? – 2012-08-12 12:16:10
我添加了代碼。 – 2012-08-12 12:25:32