Android LocationManager.isProviderEnabled ()всегда возвращает false

У меня есть приложение, которое использует провайдера сети для своего местоположения. Каждый раз, когда приложения запускаются, они проверяют, включен ли сетевой провайдер, используя метод isProviderEnabled ()в LocationManager. Если он возвращает false, я уведомляю пользователя о включении Network Provider, а затем использую приложение. Эта логика работала очень хорошо, за некоторыми исключениями, когда устройства, не сертифицированные -Google, (не вызывали беспокойства, поскольку они обычно также не имеют Maps API ). В последнее время с некоторыми устройствами на ICS, а теперь и на эмуляторе JellyBean я получаю постоянное «ложь» для isProviderEnabled (), даже если оно включено.

С тех пор я перешел к использованию строки, возвращаемой из Settings.Secure.getString (getContentResolver (), Settings.Secure.LOCATION _PROVIDERS _РАЗРЕШЕНО )), чтобы увидеть, содержит ли он «сеть». Это хак, но пока работает. Я хотел бы иметь возможность использовать метод isProviderEnabled ().

Кто-нибудь видел эту проблему раньше?

10
задан naqi 11 July 2012 в 16:38
поделиться