Cordova la géolocalisation ne fonctionne pas sur Android

Je veux utiliser la géolocalisation sur Android. J'écris application dans Apache Cordova.
La géolocalisation ne pas travailler à la fois sur android émulateur de pc et téléphone android.

J'essaie http://cordova.apache.org/docs/en/2.4.0/cordova_geolocation_geolocation.md.html#geolocation.getCurrentPosition_full_example
et http://www.w3schools.com/html/tryit.asp?filename=tryhtml5_geolocation

Mon platforms/android/AndroidManifest.xml:

<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="1" android:versionName="0.0.1" android:windowSoftInputMode="adjustPan" package="net.example.test" 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" />
    <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" />
    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" />
    <application android:debuggable="true" android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:name="Test" android:theme="@android:style/Theme.Black.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

www/config.xml:

<?xml version='1.0' encoding='utf-8'?>
<widget id="net.example.test" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>Test</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" />
    <access origin="*" />
    <feature name="Geolocation">
        <param name="android-package" value="org.apache.cordova.GeoBroker" />
    </feature>
</widget>

J'ai cordova 3.3.1 et ces plugins:

$ cordova -v
3.3.1-0.4.2
$ cordova plugin ls
[ 'org.apache.cordova.console',
  'org.apache.cordova.device',
  'org.apache.cordova.dialogs',
  'org.apache.cordova.geolocation' ]
$ 

Je trouve beaucoup de question sur l'Internet (sur stackoverflow trop), mais tout n'a pas fonctionné 🙁

Avez-vous une idée, où j'ai une erreur?


Mise à jour:

Maintenant, j'ai dans index.html:

<!DOCTYPE html>
<html><head>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
//Wait for device API libraries to load
document.addEventListener("deviceready", onDeviceReady, false);
//device APIs are available
function onDeviceReady() {
console.log('in onDeviceReady()');
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
//onSuccess Geolocation
function onSuccess(position) {
console.log('in onSuccess()');
console.log(position.coords.latitude);
console.log(position.coords.longitude);
var element = document.getElementById('geolocation');
element.innerHTML = 'Latitude: '           + position.coords.latitude              + '<br />' +
'Longitude: '          + position.coords.longitude             + '<br />' +
'Altitude: '           + position.coords.altitude              + '<br />' +
'Accuracy: '           + position.coords.accuracy              + '<br />' +
'Altitude Accuracy: '  + position.coords.altitudeAccuracy      + '<br />' +
'Heading: '            + position.coords.heading               + '<br />' +
'Speed: '              + position.coords.speed                 + '<br />' +
'Timestamp: '          + position.timestamp                    + '<br />';
}
//onError Callback receives a PositionError object
function onError(error) {
console.log('in onError()');
console.log(error.code);
console.log(error.message);
alert('code: '    + error.code    + '\n' +
'message: ' + error.message + '\n');
}
</script>
</head><body><p id="geolocation">Finding geolocation...</p></body></html>

Après je exécuter l'application dans l'émulateur Android et exécuter logcat, je vois:

$ telnet localhost 5554
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: type 'help' for a list of commands
OK
geo fix 50.60 10.20
OK
$ adb logcat Cordova:* DroidGap:* CordovaLog:* *:S
- waiting for device -
I/CordovaLog(  805): Changing log level to DEBUG(3)
I/CordovaLog(  805): Found start page location: index.html
I/CordovaLog(  805): Changing log level to DEBUG(3)
I/CordovaLog(  805): Found start page location: index.html
D/CordovaLog(  805): file:///android_asset/www/index.html: Line 11 : in onDeviceReady()
D/CordovaLog(  805): file:///android_asset/www/index.html: Line 33 : in onError()
D/CordovaLog(  805): file:///android_asset/www/index.html: Line 34 : null

Pouvez-vous svp m'aider?

  • Pourquoi cherchez-vous à la documentation de cordova 2.4 si vous êtes à l'aide de cordova 3.3? Et aussi, vous ne dites pas quel est le problème que vous avez (des erreurs dans la console? il suffit de ne pas obtenir la position?)
  • J'envoie le mauvais lien. J'ai essayer le code pour la version 3.3.0 (le code est le même que pour la 2.4) goo.gl/8Z4NmH . Je ne vois pas d'erreur ou de messages de débogage. Mon appli écrire "Trouver l'emplacement..." à l'écran et ensuite rien ne se passe. - Je ajouter "de la console.log ("journal de Test');" pour mon application, mais sur les "adb logcat" sortie je ne le vois pas.
  • Avez-vous trouvé une solution à ce problème. Moi aussi obtenir le même problème.
InformationsquelleAutor martin | 2014-02-17