Android LocationManager.isProviderEnabled () zawsze zwraca false

Mam aplikację, która korzysta z dostawcy sieci dla swojej lokalizacji. Za każdym razem, gdy aplikacje się uruchamiają, sprawdza, czy dostawca sieci jest włączony za pomocą metody isProviderEnabled () w LocationManager. Jeśli zwróci wartość false, przedstawi użytkownikowi alert, aby włączyć dostawcę sieci, a następnie użyć aplikacji. Ta logika działała bardzo dobrze, z kilkoma wyjątkami w przypadku urządzeń nieobjętych certyfikatem Google (nie jest to problemem, ponieważ zazwyczaj nie mają one również API API). Ostatnio, z niektórymi urządzeniami w ICS, a teraz z emulatorem JellyBean, otrzymuję spójne „false” dla isProviderEnabled (), nawet jeśli jest włączone.

Od tego czasu przeszedłem do używania ciągu zwróconego z Settings.Secure.getString (getContentResolver (), Settings.Secure.LOCATION_PROVIDERS_ALLOWED)), aby sprawdzić, czy zawiera on „sieć”. To hack, ale na razie działa. Chciałbym móc używać metody isProviderEnabled ().

Czy ktoś wcześniej widział ten problem?

questionAnswers(2)

yourAnswerToTheQuestion