Работает следующее (показывает карту, а не только сетку):
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ru.studiomobile.example"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET" />
<application android:label="@string/app_name" android:icon="@drawable/icon">
<activity android:name="HelloMapsActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-library android:name="com.google.android.maps" />
</application>
</manifest>
Важно , где вы положили этииспользует разрешение-х.Также я подозреваю, что он начал работать после добавления ACCESS_COARSE_LOCATION.
main.xml
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="9AaAaaaA7AAA_9AaAAARottenAAAAkMJD8h084Q"
/>
Ключ был получен с помощью следующей двухэтапной процедуры:
step1:
$keytool -list -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android
androiddebugkey, May 5, 2011, PrivateKeyEntry,
Certificate fingerprint (MD5): 99:99:99:99:99:99:99:99:99:99:99:99:99:99:99:99
step2: этот 99:99 ... был передан Google на http://code.google.com/android/maps-api-signup.html, и ключ был получен.
Без этого ключа MapView показывает толькоgrid и не работает.
import android.os.Bundle;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
public class HelloMapsActivity extends MapActivity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
}
Но ... Мне пришлось попробовать ключ разблокировки, а затем снова ключ отладки, прежде чем он заработал.Понятия не имею, что я изменил.Возможно, хитрость заключалась в том, чтобы установить его с другим сертификатом.
Я должен добавить, что
E/MapActivity Couldn't get connection factory client
на самом деле не означает, что произошла ошибка.Карта работает и все еще печатает ее в журнале.
Журнал рабочего приложения выглядит так:
I/ActivityManager( 110): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=xx.yy.example/.HelloMapsActivity } from pid 211
I/ActivityManager( 110): Start proc xx.yy.example for activity xx.yy.example/.HelloMapsActivity: pid=21102 uid=10064 gids={3003, 1015}
V/RenderScript_jni( 211): surfaceDestroyed
D/dalvikvm(21102): GC_CONCURRENT freed 1163K, 54% free 3149K/6727K, external 1625K/2137K, paused 3ms+2ms
D/dalvikvm(21102): GC_CONCURRENT freed 532K, 51% free 3308K/6727K, external 1625K/2137K, paused 1ms+3ms
I/MapActivity(21102): Handling network change notification:CONNECTED
E/MapActivity(21102): Couldn't get connection factory client
D/dalvikvm(21102): GC_EXTERNAL_ALLOC freed 880K, 55% free 3034K/6727K, external 1993K/2137K, paused 23ms
I/ActivityManager( 110): Displayed xx.yy.example/.HelloMapsActivity: +584ms