Я пишу приложение, которое показывает показания акселерометра, вчера я смог написать весь код акселерометра в основном действии, и он отлично работает на эмуляторе и моем устройстве.код акселерометра в классе
Но сегодня я пытался создать класс, содержащий весь код акселерометра, и вернуть три целых числа 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];
}
}
пожалуйста, я застрял в этой проблемой по времени, любая помощь будет признателен.
Я думаю, StackOverflow, тем лучше место для этого вопроса. – Evorlor
Как настроен ваш эмулятор? Возможно, вам следует проверить свой код на реальном телефоне или посмотреть на этот вопрос: [Как смоделировать акселерометр в эмуляторе Android?] (Http://stackoverflow.com/questions/3921467/how-can-i-simulate- акселерометр-в-android-эмулятор) – martijnn2008