Autore Topic: Come sapere se GPS o Wi-Fi/GSM Localization sono attivi?  (Letto 1384 volte)

Offline Vytek

  • Translate Team
  • Utente junior
  • **
  • Post: 125
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 8.1
Come sapere se GPS o Wi-Fi/GSM Localization sono attivi?
« il: 08 Aprile 2011, 15:23:22 CEST »
0
Salve a tutti,
ho il seguente problema: come posso verificare da codice se è attivo il GPS oppure Wi-Fi/GSM Localization attivi?

Ho provato cone il seguente codice:
Codice (Java): [Seleziona]
/*
         * @return boolean return if GPS in enable
         */

        // Modify from: [url=http://www.androidsnippets.org/snippets/168/]Android Snippets[/url]
        public boolean isLocationServiceAvaiable(Context context) {
                LocationManager lm = (LocationManager) context
                                .getSystemService(Context.LOCATION_SERVICE);
                List<String> providers = lm.getProviders(true);

                if (providers.size() > 0)
                        return true;
                else
                        return false;
        }

Ma mi ritorna sempre false anche se attivo GPS e/o Wi-Fi. Come posso fare? Esiste una funzione unica?

Un saluto e grazie di tutto....

Offline Vytek

  • Translate Team
  • Utente junior
  • **
  • Post: 125
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 8.1
Re:Come sapere se GPS o Wi-Fi/GSM Localization sono attivi?
« Risposta #1 il: 08 Aprile 2011, 16:37:57 CEST »
0
Mi rispondo da solo, dopo una dura lotta in rete ;-)

Codice (Java): [Seleziona]
/*
         * @return boolean return if GPS or Network Localization is enable or not
         */

        public boolean isLocationServiceAvaiable(Context context) {
                String provider = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
            if(provider != null){
                Log.v(TAG, "Location providers: "+provider);
                if(provider.equals("")){
                        return false;
                }
                else {
                        //OK
                        return true;
                }
            } else {
                // Notify users and show settings if they want to enable GPS
                return false;
            }
        }