Я пытаюсь использовать датчик линейного ускорения слияния в приложении для Android. Однако он не может найти датчик для Sensor.TYPE_LINEAR_ACCELERATION.Телефон не может найти датчик Sensor.TYPE_LINEAR_ACCELERATION
я выполняю эти вызовы:
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mLinearAcceleration = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION);
После вышесказанного mAccelerometer определен, но mLinearAcceleration равно нулю. Я знаю, что TYPE_LINEAR_ACCELERATION не добавляли до уровня API 9, но я думаю, что я бегу по крайней мере уровне API 9. Вот отрывок из моего файла манифеста:
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="17" />
Так что я считаю, я работаю под правильным Уровень API.
Однако, когда я пытаюсь указать все доступные датчики, я не нахожу все датчики, которые должны быть доступны для этого уровня API.
Когда я звоню ...
List<Sensor> l = mSensorManager.getSensorList(Sensor.TYPE_ALL);
for(Sensor s : l)
System.out.println(s.getName());
я
Goldfish 3-axis Accelerometer
Goldfish 3-axis Magnetic field sensor
Goldfish Orientation sensor
Goldfish Temperature sensor
Goldfish Proximity sensor
Ни один из них не линейное ускорение, а одна является ориентация, устаревший датчик. Похоже, что мои датчики работают так, как если бы они были до уровня API 9, но я не знаю, почему это было бы. Есть ли какое-то поле в моем проекте, которое может заставить приложение действовать как более старый API? (Кроме минимального поддерживается поля API в файле AndroidManifest.xml, который уже установлен на 9)
Хорошо, что ваш телефон не использует датчик TYPE_LINEAR_ACCELERATION –