index.js code:
// 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();
my config.xml Code:
<?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=" dev@cordova.apache.org " 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>
AndroidManifest Code:
<?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>
while I am trying to run this application in firefox, it gives me exact geolocation. But when I try to run the same application on an Android device. Always let timeout expired.i dnt have any kind of error in the console.
I tested that in my application the android GPS service is requested. I checked this in the location menu that my app has in the GPS request.
android cordova geolocation phonegap-plugins
Hassan ali
source share