Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add Google Maps API v2 in Mono for Android

Google Maps API v2 for Android released on 3th December.

Is there any possibility to add it into Mono for Android?

like image 332
mstuercke Avatar asked Dec 09 '12 19:12

mstuercke


People also ask

How do I add a Google API key to my Android?

Go to the Google Maps Platform > Credentials page. On the Credentials page, click Create credentials > API key. The API key created dialog displays your newly created API key. Click Close.

Is Google Map API free for Android?

You won't be charged until your usage exceeds $200 in a month. Note that the Maps Embed API, Maps SDK for Android, and Maps SDK for iOS currently have no usage limits and are at no charge (usage of the API or SDKs is not applied against your $200 monthly credit).


2 Answers

I tried the guide suggested by TheNextman, but wasn't able to make it work, so after several hours I managed to make it work using the following steps:

  1. Download the latest sample Projects from Xamarin's Github page.

  2. Open monodroid-samples\MapsAndLocationDemo_v2\MapsAndLocationDemo.sln on MonoDevelop

  3. Open the Android SDK Manager and download "Google Play Services" from the Extras section

  4. Copy \extras\google\google_play_services\libproject\google-play-services_lib to monodroid-samples\MapsAndLocationDemo_v2\

  5. Open a command prompt and cd to monodroid-samples\MapsAndLocationDemo_v2\google-play-services_lib

  6. Type the following two commands:

    android update project -p .

    ant debug

  7. Now on MonoDevelop Add the file google-play-services_lib/project.properties to the GooglePlayServices project as a linked file

  8. Now create a Google Maps API key . Two things to keep in mind though:

    The default location of the debug keystore when using MonoDroid is :

    Windows Vista / Windows 7 / Windows 8: C:\Users[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore OSX : /Users/[USERNAME]/.local/share/Xamarin/Mono for Android/debug.keystore

    You can find the package name on the MapsAndLocationDemo/Properties/AndroidManifest.xml file in the manifest tag.

  9. If you are deplyoing to a real device then that is all, if you are deploying on the emulator keep reading

  10. Create a new AVD with this setup: Platform: 4.1.2 CPU: ARM Leave the default options for the rest of parameters

  11. Grab the vending.apk (com.android.vending.apk) and the gms.apk ( com.google.android.gms.apk) from a real device (Look at the end of this post for more details)

  12. Start the emulator you just created and then open a command prompt and cd to the folder where you downloaded the APKs

  13. Type:

    adb -e install vending.apk adb -e install gms.apk

  14. Enjoy!

Sources:

(1) https://github.com/xamarin/monodroid-samples/tree/master/MapsAndLocationDemo_v2

(2) This app won't run unless you update Google Play Services (via Bazaar) Check danbrough's comment. If possible extract the two APKs com.android.vending and com.google.android.gms from a rooted Device to get an updated version of the library.

like image 107
Julian Suarez Avatar answered Sep 21 '22 17:09

Julian Suarez


For those who use a Mac, there is a bash script that will take care of building the Google Play Services client for you. It does assume that you have the environment variable $ANDROID_HOME set (the path to the Android SDK) and Apache Ant installed.

like image 22
Tom Opgenorth Avatar answered Sep 22 '22 17:09

Tom Opgenorth