2012-07-11 17 views
10

Ho un'applicazione che utilizza il provider di rete per la sua posizione. Ogni volta che le app vengono avviate, verifica se il provider di rete è abilitato utilizzando il metodo isProviderEnabled() in LocationManager. Se restituisce false, invio un avviso all'utente per abilitare il provider di rete e quindi utilizzare l'applicazione. Questa logica ha funzionato molto bene, con alcune eccezioni con i dispositivi non certificati da Google (non è un problema dato che, di solito, non hanno nemmeno l'API di Maps). Ultimamente, con alcuni dispositivi su ICS e ora sull'emulatore JellyBean ottengo un "falso" consistente per isProviderEnabled() anche se è abilitato.Android LocationManager.isProviderEnabled() restituisce sempre false

allora ho spostato ad usare la stringa restituita da Settings.Secure.getString (getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED)) per vedere se contiene "rete". È un hack ma sta funzionando per ora. Mi piacerebbe essere in grado di utilizzare il metodo isProviderEnabled().

Qualcuno ha già visto questo problema?

+2

Anche io sto affrontando questo problema! Hai qualche problema per questo? – gkris

risposta

0

Dal doc API per: LocationManager.GPS_PROVIDER

Questo provider determina la posizione utilizzando i satelliti. A seconda delle condizioni di , questo provider potrebbe impiegare un po 'di tempo per restituire una correzione di posizione. Richiede l'autorizzazione ACCESS_FINE_LOCATION.

Quindi se non si richiede ACCESS_FINE_LOCATION restituirà falso.

0

@naqi @gkris Ho notato anche questo problema in cui isProviderEnabled(LocationManager.GPS_PROVIDER) restituiva false.
soluzione a questo è di chiedere anche all'utente di impostare la Location Method-High Accuracy invece di Battery Saving o Device Only

Questa impostazione è disponibile in Impostazioni di posizione e ha nome diverso su dispositivi diversi. Su alcuni dispositivi che ho testato su, questa impostazione è con nome Mode, Location Mode, Location Method ecc Anche il valore può essere High Accuracy o GPS o GPS, Wifi and Mobile Networks

sviluppatori avranno per addestrare gli utenti su questo.

Problemi correlati