Come usare le Maps API in fase di debug e in fase di produzione
Per testare un'app che utilizza le mappe sull'emulatore, è necessario ottenere una MAP API KEY per il debug. Per fare questo dobbiamo fornire a Google il nostro certificato.
Ottenere il certificato di debug:
- Per prima cosa troviamo il nostro debug,keystore che Eclipse usa per firmare le app in debug.
- Aprire eclipse
- Andare in Windows / Preferences / Android / Build
- Copiare il path del nostro debug.keystore. Lo trovate in "default debug keystore". Il mio per esempio è c:\temp\debug.keystore
- Ora aprite una finestra di comando con cmd.exe
- Eseguite il seguente comando:
- keytool -list -alias androiddebugkey -keystore c:\temp\debug.keystore -storepass android -keypass android
- otterrete una firma digitale MD5 del tipo XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
- copiate la firma e incollatela nel campo "My certificate's MD5 fingerprint" della pagina http://code.google.com/intl/it-IT/android/maps-api-signup.html
- cliccate "Generate API key", otterrete la chiave apikey da usare e un esempio di codice xml:
<com.google.android.maps.MapView android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="codice generato xxxx" />
- Modifiche al manifest.xml della vostra app:
- inserite le permission:
- <uses-permission android:name="android.permission.INTERNET"></uses-permission>
- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
- all'interno del tag application aggiungete:
- <uses-library android:name="com.google.android.maps" />
- il manifest.xml sarà simile a questo:
-
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.informationideas.mapapp" android:versionCode="1" android:versionName="1.0.0"> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <application android:icon="@drawable/icon" android:label="@string/app_name"> <uses-library android:name="com.google.android.maps" /> <activity android:name=".ShowDesktop" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
- L'Activity sarà del tipo:
package it.giovesoft.mapapp; import android.os.Bundle; import com.google.android.maps.MapActivity; public class Mappa extends MapActivity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } }
- Per ottenere la Map API key da usare per pubblicare l'app nel market android, ripetete il punto 1. utilizzando però il file .keystore, l'alias, l'utente e la password che usate per firmare l'app.