2012-01-26 16 views

Odpowiedz

10

Twoja druga linia może być wykorzystane do tego:

boolean accelerometer; 

accelerometer = sensorMgr.registerListener(this,sensorMgr.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); 

if(accelerometer) 
{ 
. 
. 
} 
+0

Działa dzięki –

+6

Dlaczego chcesz zarejestrować słuchacza? –

3

Ponieważ dostaję wymagany błąd API9, używam zamiast tego:

SensorManager mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
    List<Sensor> deviceSensors = mSensorManager.getSensorList(Sensor.TYPE_ALL); 
    for (int i = 0; i< deviceSensors.size(); i++) { 
     if (deviceSensors.get(i).getType() == Sensor.TYPE_PRESSURE) { 
      mHasBarometer = true; 
      break; 
     } 
    } 
9

Oto poleca z developer.android.com: http://developer.android.com/guide/topics/sensors/sensors_overview.html#sensors-identify

Można określić, czy dany typ czujnika istnieje na urządzeniu przy użyciu metody getDefaultSensor() i przekazując typu stały dla konkretnego czujnik. Jeśli urządzenie ma więcej niż jeden czujnik danego typu, jeden z czujników musi być oznaczony jako czujnik domyślny. Jeśli domyślny czujnik nie istnieje dla danego typu czujnika, wywołanie metody zwraca wartość null, co oznacza, że ​​urządzenie nie ma tego typu czujnika.

private SensorManager mSensorManager; 
... 
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
if (mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD) != null){ 
    // Success! There's a magnetometer. 
} 
else { 
    // Failure! No magnetometer. 
} 
0

używam następujący kod:

 SensorManager sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
     if(sensorManager.getSensorList(Sensor.TYPE_MAGNETIC_FIELD).size() > 0) 
     { 
      //sensor exist 
     } 
     else 
     { 
      //disable feature 
     } 
Powiązane problemy