Получение нескольких данных с датчиков одновременно
Я зарегистрировал слушателей для нескольких датчиков (все они, мне нужны все датчики, которые могут быть зарегистрированы через SensorManager).
Я объявил String data
переменная, которая должна содержать все значения и имена датчиков в определенное время, в зависимости от того, какой датчик должен быть выбран первым (который должен быть проверен первым, поэтому в идеале первая строка должна быть Accelerometer - 1.000, Accelerometer - 2.000, Accelerometer - 0.500, Magnetic Field - 0.123, Magnetic Field - 0.321, STOP\n
,
Это мой метод onSensorChanged:
String data = "";
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
while (index < event.values.length) {
data += event.sensor.getName() + "-" + event.values[index] + ", ";
index++;
}
}
if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
while (index < event.values.length) {
data += event.sensor.getName() + "-" + event.values[index] + ", ";
index++;
}
}
print(data + " STOP\n);
Вместо этого я получаю
Accelerometer - 1.000, Accelerometer - 2.000, Accelerometer - 0.500, STOP\n
Magnetic Field - 0.123, Magnetic Field - 0.321, STOP\n
при печати моей строки.
Проблема, с которой я сталкиваюсь, заключается в том, что переменная data
содержит только данные акселерометра ИЛИ магнитного поля за раз, так как кажется, что Android не позволяет получать данные нескольких датчиков одновременно (кажется, что одновременно запускается только один датчик). Если я печатаю данные после каждого вызова onSensorChanged, он печатает в зависимости от того, какой датчик сначала получит getType(), а затем другой, и он будет продолжаться и продолжаться поочередно.
Как я могу получить строку, которая содержит оба?