Visualizzazione post con etichetta google-play-services_lib. Mostra tutti i post
Visualizzazione post con etichetta google-play-services_lib. Mostra tutti i post

venerdì 15 marzo 2013


HABEMUS MBC!


 HOW TO CREATE AN ANDROID PROJECT USING GOOGLE MAPS API V2
-
COME CREARE UN PROGETTO ANDROID USANDO LE GOOGLE MAPS API V2

Aaaaaaall right, folks.
This evening I decide to explain you how to create an Android Project using Google Maps API V2.
First of all let me say that using V2 API
  1. it's a bit harder then V1 API, cause the libs for Maps are not contained in a .jar archive, but must be imported as a project library;
  2. make your life easier while you programming your app's activities. The listeners have been optimezed, most of the logic has already been implemented, so the benefits are greater difficulties.
Let's start.

So you're already an Android Dev, you paid your life-long-fee, and you get your API KEY from your API CONSOLE.

Then open Eclipse, click on "Android SDK Manager", then check that "Google play services" is installed. If not, download it

1.1 How to check if you have Google Play Services
Ok, now you've got all you need to use maps.

- Create a new Android Project,

call it "Gennarino", or "Francis_FROM_Coppola" if you like it. Or "PrjBase" if you're indescribably boring. 

- Then go to your "androidManifest.xml" 

and add the highlighted strings, like in the pics below...

1.2 androidManifest.xml - ADDING PERMISSIONS AND OTHER SETTINGS

1.3 androidManifest.xml  - ADDING API KEY

... from which all of you can understand how boring I am... ;)
By the way, let's stop a moment for explaining.
  • <permission       
    android:name="prjbase.main.permission.MAPS_RECEIVE"
            android:protectionLevel="signature" />
    It means that you ask to your OS the permission for receiving MAPS, using a "signature" (your API KEY);
  •  <uses-feature     android:glEsVersion="0x00020000"
  •      android:required="true" />

  • That's indicates the openGL ES version (in this case the 2, look in the middle of 0), and if it's required;
  • <uses-permission ...../>Those strings are simples, and are similar to permission in the use; they indicate which permission this app is authorized to use;
  •  <meta-data           
    android:name="com.google.android.maps.v2.API_KEY"
                android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" />      
  • Here you must put your API KEY V2 instead of xxx...

- LET'S MODIFY OUR map.xml VIEW

adding a fragment that will contain our map. Google ha decided to use MapFragments instead of MapView, probably for increasing performances. However that is, so do like in the pic

1.4 Adapting you map view

Ok, we have updated the manifest, and added the fragment to the view. Now we have to

- IMPORT google-play-services_lib AS A PROJECT LIB

First of all we have to right click on the white space of our package explorer, then select import and choose "EXISTING ANDROID CODE INTO WORKSPACE"; 

BE CAREFUL: DON'T "EXISTING PROJECT INTO WORKSPACE"!!!


Then browse into you android-sdk directory, and go into

<your_android-sdk_DIRECTORY>\extras\google\google_play_services\libproject

 and click on finish.

1.5 How to import google-play-services_lib as project lib

Wow! You're great! That was the worst! Now let's see how 

- ADD THIS LIB INTO OUR PROJECT 

Yes, OUR, not YOUR, cause I've teached you how to make it, and your project is mine too!
So right click on OUR project, click on Properties, then Android tab. Go down after your list of Android devices, and finally you've reached the Library section.
Click on "Add" button, and select "google-play-services_lib", then OK.

1.6 Add google-play-services_lib into our project

WELL DONE, DELTA!
Now we must only

- LOAD OUR MAP FRAGMENT INTO OUR ACTIVITY

simply using this commenda, right after setContentView(R.layout.map);

map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map_view)).getMap();

Let me say that the map is a private GoogleMap map; put outside the method onCreate(), into the Activity. Here is the code of map Activity