2012-09-07 32 views
5

Şimdi, titreşimi izlemek için bir uygulama oluşturmaya çalışıyorum. İşi bitirmek için ivmeölçer kullanıyorum, kaydedilen hızlanma belirli bir eşiği aştığında, bunu bir tetikleyici olarak adlandırıyorum. Bir tetikleyici olduğunda, hızlanma, manyetik alan, ışık seviyesi verilerini (farklı sensörlerden) tetikleme zamanında bir dosyaya kaydetmek istiyorum.Android'de aynı anda birden fazla sensör verisi alın

Sorun şu ki: Her bir sensörden veri alabilirim, ancak verileri aynı anda birden fazla sensörden nasıl alacağımı anlayamadım. Örneğin, ivme verisini kaydettiğimde, ivmeölçerin değişimini izlemek için bir sensörlistener ayarlayabilirim, aynı zamanda diğer sensörlerden de aynı anda veri alabilir miyim?

Şimdiden teşekkürler. aşağıdaki gibi

+0

([Android'de birden sensör verileri almak için bir yolu var mı] Olası yinelenen http://stackoverflow.com/questions/4343342/is-there -e-way-to-get-çoklu-sensör-data-in-android) –

cevap

6

Evet bunu yapabilirsiniz:

private SensorManager manager; 
private SensorEventListener listener; 

manager = (SensorManager) this.getSystemService(Context.SENSOR_SERVICE); 
listener = new SensorEventListener() { 
    @Override 
    public void onAccuracyChanged(Sensor arg0, int arg1) { 
    } 

    @Override 
    public void onSensorChanged(SensorEvent event) { 
     Sensor sensor = event.sensor; 
     if (sensor.getType() == Sensor.TYPE_ACCELEROMETER) { 
      ... 
     } 
     else if (sensor.getType() == Sensor.TYPE_GYROSCOPE) { 
      ... 
     } 
    } 
} 

manager.registerListener(listener, manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME); 
manager.registerListener(listener, manager.getDefaultSensor(TYPE_GYROSCOPE), SensorManager.SENSOR_DELAY_GAME); 
+1

Teşekkürler paritybit, bunu denedim, ama bu aynı zamanda veri toplama değil gibi görünüyor, örneğin, bir sensör olay değişikliği olduğunda, sadece ivme veya jiroskop olup olmadığını kontrol edin. İstediğim şey, ivmeölçer değiştiğinde, aynı zamanda ivme ölçer ve jiroskoptan veri toplarım. – calBear

+2

Olay modelinin bu şekilde çalıştıklarını sanmıyorum. Android, sensör verilerini aldığında, abone olunan olay dinleyicisini yürütür ve daha sonra sensör verilerini olaydan çıkarırız. Verileri herhangi bir sensörden belirli bir zamanda zamanında getirebiliriz. –

+0

@GregRandall Her iki sensör de aynı anda değişirse ne olur? Event.values ​​[] 'ne giriş yapılacak? – Chaine

İlgili konular