У меня есть приложение, которое использует Network provider для его местоположения. Каждый раз при запуске приложений он проверяет, разрешен ли сетевой провайдер, используя метод isProviderEnabled() в LocationManager. Если он возвращает false, я предоставляю пользователю уведомление, чтобы включить Network Provider, а затем использовать приложение. Эта логика работала очень хорошо, за некоторыми исключениями с устройствами, не сертифицированными Google (это не проблема, поскольку они обычно не имеют API Карт). В последнее время с некоторыми устройствами на ICS и теперь на эмуляторе JellyBean я получаю согласованное "false" для isProviderEnabled(), хотя оно включено.
С тех пор я перешел к использованию строки, возвращенной из Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED)), чтобы увидеть, содержит ли он "сеть". Это взлом, но он работает пока. Мне очень хотелось бы использовать метод isProviderEnabled().
Кто-нибудь видел эту проблему раньше?