Hola, pues verán estoy queriendo implementar el acelerometro en una aplicación que estoy desarrollando, el problema es que al momento de registrarlo me arruina todo el proyecto y no veo cual sea el problema. Ahora les explico:
Tengo la siguiente clase PRINCIPAL:
Código:
Public class Main extends Juego{
//Algun metodo
}
Como verán mi clase está heredando de la super clase juego que a su vez hereda de Activity y es donde mando el contexto a mi clase que maneja las entradas del usuario:
Código:
public abstract class Juego extends Activity implements AndroidJuego{
Input input;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//mas codigo
input = new InputJuego(this);
//mas codigo
}
//mas codigo
}
La siguiente clase hace de intermediaria:
Código:
public class InputJuego extends Input{
Accelerometro acelerometro;
//mas codigo
public InputJuego(Context context){
acelerometro = new Acelerometro(context);
//mas codigo
}
//mas codigo
}
Y ahora si la clase buena, que se encarga de registrarme el acelerometro:
Código:
public class Acelerometro implements SensorEventListener{
public Acelerometro(Context context){
SensorManager manager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
if(manager.getSensorList(Sensor.TYPE_ACCELEROMETER).size() > 0){
Sensor acelerometro = manager.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0);
if(!manager.registerListener(this, acelerometro, SensorManager.SENSOR_DELAY_GAME))
Log.d("AccelerometerHandler", "No se ha podido registrar el acelerometro");
}else{
Log.d("AcelerometerHandler", "El dispositivo no cuenta con acelerometro");
}
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
//mas código
}
La linea del problema es la que se encuentra en negritas, por alguna razón no estoy obteniendo correctamente el SensorManager, lo curioso es que si lo corro desde el emulador de android se me traba la aplicación y si lo hago desde mi Galaxy Ace solo me tira error de registro de acelerometro en el logcat.
Por cierto, las clases que he puesto contienen mucho mas código, solo he puesto lo que he creído necesario, si alguien necesita mas información solo pídanmelo y yo se los pongo.
Espero que alguien me pueda ayudar.
Saludos