Я пишу метод, который будет возвращать true, если датчик GPS присутствует и включен, но возвращает false, если он отсутствует или выключен. Это тяжело, потому что ...
hasSystemFeature("FEATURE_LOCATION_GPS") // on PackageManager
Возвращает false независимо от того, есть ли у устройства GPS или нет. Так что даже на устройстве, у которого оно есть, и оно включено, оно все равно возвращает false. Мне кажется это совершенно неправильным, но я не понимаю, почему.
isProviderEnabled("gps") // on LocationManager
Возвращает true, даже на устройстве, которое у меня есть, у которого вообще нет оборудования GPS. Это также кажется совершенно нелогичным.
Я согласен, что эти результаты могут быть вызваны тем, что я что-то упустил, SDK не интуитивно понятен или, возможно, даже потому, что устройства, с которыми я тестирую, ведут себя странно.
Чего мне не хватает?