我正在編寫一個顯示加速計讀數的應用程序,我昨天能夠在主要活動中編寫所有加速計代碼,並且它在模擬器和我的設備上正常工作。類中的加速計代碼
但今天我試圖讓一個包含所有加速度計代碼的類,並返回三個整數X,Y,Z的整數數組僅,讓我做,我認爲它`正確的,但每一個碼當我在模擬器上運行這個項目時,它總是給我0,0,0。 所以,我希望任何幫助,請。
活動代碼::
package com.example.accelerometer_sensor;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
int [] AccVal = new int[3];
TextView acceleration;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AccelerometerClass acc = new AccelerometerClass();
acc.AccelerometerInit(this);
AccVal =acc.Vals;
acceleration = (TextView)findViewById(R.id.acceleration);
acceleration.setText("X: "+acc.Vals[0]+
"\nY: "+acc.Vals[1]+
"\nZ: "+acc.Vals[2]);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
accelerometerClass:
package com.example.accelerometer_sensor;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
public class AccelerometerClass implements SensorEventListener
{
int [] Vals = new int[3];
Sensor accelerometer;
SensorManager sm;
public void AccelerometerInit(Context context)
{
sm = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);
accelerometer=sm.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
sm.registerListener(this, accelerometer,SensorManager.SENSOR_DELAY_NORMAL);
}
protected void onResume() {
sm.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}
protected void onPause() {
sm.unregisterListener(this);
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub
}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
Vals[0]=(int)event.values[0];
Vals[1]=(int)event.values[1];
Vals[2]=(int)event.values[2];
}
}
請我卡在這個問題隨着時間,任何幫助將升值。
我認爲計算器是更好這個問題的地方。 – Evorlor
你的模擬器是如何配置的?也許你應該在真實的手機上測試你的代碼,或者看看這個問題:[我怎樣才能在android模擬器中模擬加速計?](http://stackoverflow.com/questions/3921467/how-can-i-simulate-加速度計在Android模擬器) – martijnn2008