Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo saber si el GPS está habilitado en Android con Titanium

Estoy trabajando en una aplicación de Android 3.2+ en Titanium. Es crucial que pueda determinar si el dispositivo tiene GPS habilitado. Según la referencia de la API de Titanio, Ti.Geolocation.locationServicesEnabled siempre devolverá true en Android 2.2+, debido a un nuevo proveedor de ubicación "pasivo". ¿Hay alguna otra forma de determinar si el GPS está realmente habilitado?

Gracias.

  • ¿Funcionan los tamaños de fuente de escala automáticamente para android, usando el appcelerator?
  • ¿Qué es un daemon adb?
  • 2 Solutions collect form web for “Cómo saber si el GPS está habilitado en Android con Titanium”

    Creo que este código debería funcionar para usted:

    //check to see if we have GPS capabilities if(Titanium.Geolocation.isLocationProviderEnabled(Titanium.Geolocation.PROVIDER_GPS, Titanium.Geolocation.ACCURACY_BEST) == false) { var alertDlg = Titanium.UI.createAlertDialog({ title:'MileTrackGPS', message:'GPS is OFF. Enable it in Settings.', buttonNames: ['Cancel', 'Open Settings'] }); alertDlg.cancel = 0; alertDlg.addEventListener('click', function(e){ if(!e.cancel) { //open up the settings page var settingsIntent = Titanium.Android.createIntent({ action: 'android.settings.LOCATION_SOURCE_SETTINGS' }); activity.startActivity(settingsIntent); } else { //close the window to exit win.close(); } }); alertDlg.show(); } 

    Refrence

    Muy bien aquí es una solución fácil que surgió y funciona bien para mí. Tengo una variable global 'timeStamp' que inicialmente establecí a cero.

     Titanium.Geolocation.getCurrentPosition(function(e){ //only update fields if timer is still active if(gpsTimer!=null) { //if the provider is not GPS or the timestamp is the same as the last, we do not want the results. We need to alert the user that they need to turn their GPS on. if(e.provider['name']!="gps" || timeStamp==e.coords.timestamp) { //clear timeout clearTimeout(gpsTimer); gpsTimer = null; //close window get_gps_win.close(); //garbage collection get_gps_win = null; gpsLatField = null; gpsLongField = null; gpsAccuracyField = null; timeStamp=0; //alert user alert("This feature is not available unless you have GPS turned on. Please turn GPS on and then try again."); } else { //update fields gpsLatField.value=ConvertDDToDMSPlain(e.coords.latitude); gpsLongField.value=ConvertDDToDMSPlain(e.coords.longitude); gpsAccuracyField.value=e.coords.accuracy+" meters/"+(e.coords.accuracy*3.28084)+" feet"; gpsTimer=setTimeout(function() { Titanium.Geolocation.fireEvent('location'); }, 1000); } timeStamp= e.coords.timestamp; } }); 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.