Я хочу знать, какие датчики есть на данном Android-устройстве. До уровня API 20 функция sensor.getTypeString() была недоступна. Однако я могу получить целочисленный тип, используя sensor.getType().
Я могу составить список типов ("TYPE_ACCELEROMETER", "TYPE_AMBIENT",...), но мне как-то нужно определить значение Sensor.XXX для каждого типа.
Я предполагал, что такое выражение, как Sensor[sensorType] (где sensorType — это строка, такая как «TYPE_ACCELEROMETER»), будет работать, но Java не согласен со мной в этом. Он жалуется, что Sensor не является переменной.
Я знаю, что могу использовать оператор switch
или серию операторов if
(псевдокод):
int type = sensor.getType();
if (type == Sensor.TYPE_ACCELEROMETER) {
return "TYPE_ACCELEROMETER";
} else if (type == TYPE_AMBIENT) {
return "TYPE_AMBIENT";
} else
...
}
Можете ли вы порекомендовать более элегантный способ добиться этого?