2014-10-26 2 views
0

Я хочу знать, какие датчики у данного устройства Android. До уровня API 20 был недоступен sensor.getTypeString(). Однако я могу получить целочисленный тип, используя sensor.getType().Получение типа датчиков на устройстве Android (до уровня API 20)

Я могу составить список типов («TYPE_ACCELEROMETER», «TYPE_AMBIENT», ...), но каким-то образом мне нужно определить значение Sensor.XXX для каждого типа.

Я предположил, что выражение типа Sensor [sensorType] (где sensorType - это строка, такая как «TYPE_ACCELEROMETER»), будет работать, но Java не согласна со мной в этом вопросе. Он жалуется, что датчик не является переменной.

Я знаю, что я мог бы использовать switch заявление или серию if заявлений (псевдокод):

int type = sensor.getType(); 
if (type == Sensor.TYPE_ACCELEROMETER) { 
    return "TYPE_ACCELEROMETER"; 
} else if (type == TYPE_AMBIENT) { 
    return "TYPE_AMBIENT"; 
} else 
    ... 
} 

Можете ли вы порекомендовать более элегантный способ достижения этой цели?

ответ

0

Вы можете использовать способ public List<Sensor> getSensorList (int type) в категории SensorManager, проходящий в Sensor.TYPE_ALL, чтобы получить все доступные датчики в устройстве.

Смежные вопросы