トップへ戻る
C++、C#、VC、JAVA、Androidプログラミングを初歩的なことから書いていきます。

Google Android Map v2

2012年12月に、新しいバージョンが公開されました。しかしこのバージョン2はバージョン1との互換性が無いため、 導入からやり直しとなっています。ですので、まずは導入の仕方を説明します。
まずはじめに、AVD Managerの更新から行います。eclipse上からでも、直接exeを叩いても構いませんので、アップデートを行ってください。
今回のGoogle Android Map v2を使用するためには、Google Play servicesが必要ですので、少なくともこれは更新又はインストールしてください。
ここで、toolsディレクトリが移動できない等のエラーが発生した場合は、toolsディレクトリを一旦別の場所にコピーし、android.batを実行させてください。 これで正しくアップデートができるようになると思います。
アップデート後は、toolsを元の場所に戻してアップデートは終了です。 この時、javaが見つからないというエラーが発生した場合は、tools->lib内のfind_java.batを開き、26行目を
for /f %%a in ('%~dps0\find_java.exe -s') do set java_exe=%%a
から
set java_exe="C:\Program Files\Java\jdk1.7.0_10\bin\java.exe"
に、 32行目を
for /f %%a in ('%~dps0\find_java.exe -s -w') do set javaw_exe=%%a
から
set java_exe="C:\Program Files\Java\jdk1.7.0_10\bin\javaw.exe"
に変更してください。ここで、javaのバージョンは各自インストールしているものにしてください。
この状態でeclipseを起動してください。まずはライブラリをインポートします。 新規作成から、Android Project from Existing Codeを選択し、
android-sdk-windows\extras\google\google_play_services\libproject\google-play-services_lib
をインポートしてください。以上でした準備は終了です。
次に、実際に使用したいプロジェクトを作成します。Androidプロジェクトでしたら何でも構いません。
作成後、Google APIs Console を開き、Servicesから[Google Maps Android API v2]をONにします。
次に[API Access]を開き、[Create new Android key…]ボタンでAPIアクセスキーを作ります。
この時SHA-1ハッシュ値が必要ですが、コマンドプロンプトで以下のコマンドを実行すればいいです。
keytool -list -v -keystore ~/.android/debug.keystore
なお、keytoolはjavaのbinディレクトリ内にあり、 keystoreは、C:\Users\ユーザ名\.androidディレクトリ内にあります。
ここで表示されたSHA1のアクセスキーと、使用したいアプリケーションパッケージ 名を、以下のようにして貼り付けます。

パッケージ名がわからない時は,ActivityのonCreateに、 getPackageName()と打ち,返り値を確認してください。
生成されたキーを、AndroidManifest内のapplication内に記述します。
	<meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="ABCDefghiJKLMNOPQrstuVWxYZ_a0123abcde"/>
また、以下を許可します。
<permission
    android:name="com.adamrocker.mapsv2.permission.MAPS_RECEIVE"
    android:protectionLevel="signature"/>
<uses-permission android:name="パッケージ名.permission.MAPS_RECEIVE"/>
<!-- 実行には OpenGL ES version 2 が必要 -->
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />
		<uses-permission android:name="android.permission.INTERNET" />
    <!-- GPSを使用するために必要なパーミッション -->
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
	<!-- ファイル書き込み用パーミッション -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
ここまで来たら後少しです。 次に、ライブラリを使用したいプロジェクトに追加します。 プロジェクトを右クリックし、AndroidツールからAdd Support Libraryを選択し、google-play-services_libを追加してください。
次に、プロパティからAndroidに行き、ライブラリ(\google-play-services_lib)を追加して完了です。
最後に、アクティビティ回りのことです。以下のソースをのように打ち込めばとりあえず表示はされます。
public class Test extends FragmentActivity {
 
    private static final String TAG_MAP_FRAGMENT = "MAP_FRAGMENT";
 
    private SupportMapFragment mMapFragment;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        // 登録したタグから MapFragment を取得する(デバイス回転などの再生成対策)
        mMapFragment = (SupportMapFragment) getSupportFragmentManager()
                .findFragmentByTag(TAG_MAP_FRAGMENT);
        if (mMapFragment == null) {
            // MapFragment がなければ作成する
            mMapFragment = SupportMapFragment.newInstance();
            getSupportFragmentManager().beginTransaction()
                    .add(android.R.id.content, mMapFragment, TAG_MAP_FRAGMENT)
                    .commit();
        }
    }
}
地図の機能の使い方については、後日記述します。
inserted by FC2 system