akcelerometr Android

hlasů
2

Shromáždil jsem spoustu vzorků a konzultace v této věci, ale jakmile jsem se realizovat svou vlastní verzi, nebo dokonce jen zkopírovat kód rovnou, nemohu dostat nějaké hodnoty se ukázat v mém deníku.

Myslím, že jsem chybí jeden důležitou roli, ale nemůžu na to přijít.

public class Accelerometer extends Activity {

    SensorManager sensorManager;
    Sensor accelerometer;

    private SensorEventListener sensorEventListener = new SensorEventListener() {

        public void onAccuracyChanged(Sensor sensor, int accuracy) {

        }

        public void onSensorChanged(SensorEvent event) {

            float x = event.values[0];
            float y = event.values[1];
            float z = event.values[2];
            update(x, y, z);
        }
    };

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        sensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
        accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    }

    public void update(float x, float y, float z) {

        Log.v(semajhan, x:  + x +  y:  + y +  z:  + z);
    }

    protected void onResume() {
        super.onResume();
        sensorManager.registerListener(sensorEventListener, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
    }

    protected void onPause() {
        super.onPause();
        sensorManager.unregisterListener(sensorEventListener);
    }
}

Můj problém se zdá být to, že nevím, jak se ve skutečnosti přístup k akcelerometru.

Poté, co můžu dostat tyto hodnoty, mohu pohnout kupředu, ale musím nejprve pochopit.

Položena 21/12/2010 v 21:46
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
3

Váš kód se zdá v pořádku, aby mě. To je podobné jako příklady Také použité načíst data ze senzorů. Jedna věc může být problematické. Jsou si jisti, že mají čidlo tohoto typu na vašem zařízení?

Chcete-li zjistit, že používání

public List<Sensor> getSensorList (int type) 

Funkce SensorManager. Můžete získat úplný seznam čidel jsou k dispozici na vašem zařízení, pokud používáte type = Sensor.TYPE_ALLve volání funkce, a projít všech prvků seznamu.

AKTUALIZACE:

Zkoušel váš kód. Je plně funkční. Problém je, že zobrazení stop je zakázána na Nexus. Chcete-li povolit stopy jít do Nastavení-> Aplikace-> Rozvoj a kontrolovat volbu USB ladění. Bez toho dostanete žádné stopy.

Odpovězeno 21/12/2010 v 22:18
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more