ignacio.munizaga
ignacio.munizaga

Reputation: 1603

Phonegap build with android geolocation

I'm writting an android and iphone app using phonegap 3.0.

So far I have been only compiling the apps remotely using phonegap build.

Now I'm trying to add the geolocation plugin to my app, and in iphone was easy, since I only had to modify the config.xml file.

<feature name="Geolocation">
    <param name="ios-package" value="CDVLocation" />
</feature>

So far so good, the problem was that when adding geolocation to android, the documentation indicates that I have set the following configuration:

(in app/res/xml/config.xml)
<feature name="Geolocation">
    <param name="android-package" value="org.apache.cordova.GeoBroker" />
</feature>


(in app/AndroidManifest.xml)
<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" />

But I don't have an AndroidManifest.xml file. I could generate the complete android app using:

cordoba platform add android

But I'm not sure if this is what I should do. Is is what I should be doing? or there is a way to add geolocation without generating the entire android project?

Upvotes: 0

Views: 3427

Answers (2)

user3806549
user3806549

Reputation: 1438

I had the same problem. My geolocation worked on IOS but not on Android. So I Added to config.xml

<feature name="http://api.phonegap.com/1.0/geolocation"/>

As explained by Dom.This was not sufficient. I wanted to share what I did step by step because I lost about 18h of dev time looking for the solution.

This however did not reslove the problem. So I added the plugin using my IDE. enter image description here

This added the following to the config:

<plugin name="cordova-plugin-geolocation" version="2.2.0" />

I then went inside the plugin.xml under the plugin directorty. enter image description here

enter image description here

And looked if the following was added.

 <!-- android -->
    <platform name="android">

        <config-file target="AndroidManifest.xml" parent="/*">
            <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
            <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        </config-file>

...

It was, so I rebooted the device. (on the Ionic forum they say, it might help) When reinstalling the app I checked for the permission. And it was added. So for the bad Q of the last pic but I took a pic with my cam for it. Hope this helps

enter image description here

Upvotes: 0

Dom
Dom

Reputation: 2569

I am a bit confused because you say you are using phonegap 3.0 and you also mention phonegap-build (highest is 2.9). If you are in fact using phonegap-build, the only thing you need is in your config.xml:

<feature name="http://api.phonegap.com/1.0/geolocation"/>

Upvotes: 2

Related Questions