Как проверить, существует ли определенный датчик на устройстве?

Я разрабатываю приложение для Android, которое использует датчики, и я хотел бы знать, как лучше всего определить, есть ли на устройстве определенный датчик, скажем, датчик приближения.

Кроме того, есть ли какой-либо «фильтр», который можно применить к манифесту, чтобы пользователи, у которых нет датчика приближения на устройстве, не могли установить приложение? Если существует, будет ли этот «фильтр» действовать и в Google Play, чтобы пользователи не могли увидеть приложение?


person Pedro Lobito    schedule 20.04.2012    source источник
comment
Здесь указана ссылка на работу с датчиками Android.   -  person Perception    schedule 20.04.2012


Ответы (1)


Это, скорее всего, то, что вы ищете при проверке функций программно.

PackageManager PM= this.getPackageManager();
boolean gps = PM.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS);
boolean acc = PM.hasSystemFeature(PackageManager.FEATURE_SENSOR_ACCELEROMETER);

Эта ссылка объясняет, что вы можете сделать, чтобы отфильтровать свое приложение на рынке, посмотрите конкретно в разделе

Фильтры рынка

person Idistic    schedule 20.04.2012
comment
Это решает часть проблемы, спасибо, но как я могу указать, что приложению требуется определенное оборудование (датчик приближения) в манифесте Android? - person Pedro Lobito; 20.04.2012
comment
Я проверил фильтры рынка и вуаля, <uses-feature android:name="android.hardware.sensor.proximity" />, спасибо! - person Pedro Lobito; 20.04.2012
comment
После добавления <uses-feature android:name="android.hardware.sensor.proximity" /> в файл манифеста Play Store говорит 0 devices supported :( - person Kamran Ahmed; 10.10.2014
comment
Будьте немного осторожны... ‹uses-feature android:name=android.hardware.sensor.proximity android:required=false /› и проверьте PackageManager на доступность - person chksr; 08.11.2017