una ubicacion tiempo studio real obtener localizacion hacer geolocalizacion ejemplo crear coordenadas como app aplicacion activar android cordova geolocation phonegap-plugins

tiempo - obtener ubicacion gps android studio



Código de error 3 Timeout cuando intento obtener geolocalización usando Cordova en la plataforma Android (2)

código de index.js:

// debug function d(s) { console.log(s); $("#status").text(s); } // geo function geoWin(pos) { d("geoWin(): "+pos.coords.latitude+", "+pos.coords.longitude+","+pos.coords.speed); } function geoFail(error) { d("geoFail(): "+error.code+": "+error.message); } function startGeoWatch() { d("startGeoWatch()"); opt = {maximumAge: 0,timeout: 2000, enableHighAccuracy: true}; watchGeo = navigator.geolocation.watchPosition(geoWin, geoFail, opt); } function stopGeoWatch() { d("stopGeoWatch()"); navigator.geolocation.clearWatch(watchGeo); } // life cycle function onPause() { d("onPause()"); stopGeoWatch(); } function onResume() { d("onResume()"); startGeoWatch(); } // init function onDeviceReady() { d("onDeviceReady()"); document.addEventListener("pause", onPause, false); document.addEventListener("resume", onResume, false); startGeoWatch(); } function main() { document.addEventListener(''deviceready'', onDeviceReady, false); } // main & globals var watchGeo=null; main();

mi código config.xml:

<?xml version=''1.0'' encoding=''utf-8''?> <widget id="com.terokarvinen.geo" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> <name>HelloCordova</name> <description> A sample Apache Cordova application that responds to the deviceready event. </description> <author email="[email protected]" href="http://cordova.io"> Apache Cordova Team </author> <content src="index.html" /> <plugin name="cordova-plugin-whitelist" version="1" /> <access origin="*" /> <allow-intent href="http://*/*" /> <allow-intent href="https://*/*" /> <allow-intent href="tel:*" /> <allow-intent href="sms:*" /> <allow-intent href="mailto:*" /> <allow-intent href="geo:*" /> <platform name="android"> <allow-intent href="market:*" /> </platform> <platform name="ios"> <allow-intent href="itms:*" /> <allow-intent href="itms-apps:*" /> </platform> <plugin name="cordova-plugin-geolocation" spec="~2.2.0" /> </widget>

Código AndroidManifest:

<?xml version=''1.0'' encoding=''utf-8''?> <manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" package="com.terokarvinen.geo" xmlns:android="http://schemas.android.com/apk/res/android"> <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name" android:supportsRtl="true"> <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleTop" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize"> <intent-filter android:label="@string/launcher_name"> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23" /> <uses-permission android:name="android.permission.ACCESS_GPS" /> <uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" /> <uses-permission android:name="android.permission.ACCESS_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> </manifest>

mientras trato de ejecutar esta aplicación en firefox, me da la geolocalización exacta. Pero cuando trato de ejecutar esta misma aplicación en un dispositivo Android. Siempre da el tiempo de espera expirado. No tengo ningún error en la consola.

Había probado la aplicación que se solicita el servicio de GPS de Android. Lo había comprobado en el menú de ubicación que tiene mi aplicación en la solicitud de GPS.


Según la miríada de preguntas similares sobre , parece que el complemento de geolocalización de Cordova tiene problemas especialmente en Android . Parece que la solución es:

  1. Elimine el plugin de geolocalización de la siguiente manera:

cordova plugin rm org.apache.cordova.geolocation .

Su aplicación recurrirá a la funcionalidad estándar de navigator.geolocation HTML5.

  1. Por supuesto, verifique que los servicios de su ubicación estén activados, que su dispositivo tenga cobertura (no está en un edificio con paredes gruesas, etc. Si es así, quizás establezca enableHighAccuracy en false y establezca un mayor tiempo de espera).

  2. Asegúrese de tener los siguientes permisos agregando estas líneas en su manifiesto:

< uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> < uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> < uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

Además, dele acceso a su aplicación a Internet para que pueda acceder a antenas WiFi y celulares:

<uses-permission android:name="android.permission.INTERNET" />

No puedo probar esto por mí mismo, pero deberías tener más suerte después de hacer esto.

Déjame saber cómo te va.


<access origin="*"/> <access origin="*://*.googleapis.com/*" subdomains="true" /> <access origin="*://*.gstatic.com/*" subdomains="true" /> <access origin="*://*.google.com/*" subdomains="true" /> <access origin="*://*.googleusercontent.com/*" subdomains="true" />

Pruebe con el código anterior. Coloque esto en config.xml. Verifique esta respuesta