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.

  • Twitter Tela no se instala en Android Studio debido a las dependencias que faltan
  • Phonegap cámara Android mata cordova
  • Causado por: android.database.sqlite.SQLiteException: no hay tal tabla: (código 1) Android
  • En el desarrollo de Android, ¿qué archivos se deben asignar a un repositorio?
  • BroadcastReceiver no funciona después de BOOT_COMPLETED
  • Agregar AAR en IntelliJ IDEA sin gradle
  • Android Maps API v2 con marcadores personalizados
  • Android getSystemService dentro de ArrayAdapter personalizado
  • ¿Cómo utilizar la API de bloqueo inteligente en mi aplicación para desbloquear el modo de patrón?
  • ¿Cómo quitar una disposición que fue agregada usando addContentView ()?
  • Cambiar el color de la barra de acciones por programación más de una vez
  • Android: Error: falla en la conversión al formato Dalvik
  • 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.