Google Maps Android API覚え書き
Google Maps Android API v2でとりあえず地図が表示できるところまで試したので、(主に自分用の) メモとして作業手順を書いておきます。
参考にした情報
1. Android Studio上でプロジェクト作成
ここでは以下のように入力。
- Application Name: SampleMapApp
- Company Domain: example.org
- Package name: org.example.samplemapapp
- Target Android Devices: Phone and Tablet, Minimum SDK: API 15
- Activity: Blank Activity
- Activity Name: MainActivity
- Layout Name: activity_main
- Title: MainActivity
- Menu Resource Name: menu_main
2. キーストア作成+アプリ鍵生成
Android Studioのプロジェクト画面上で、Build→Generate Signed APKを選択。
ここで、Key store path: の下のCreate new...を選択する。
New Key Storeのダイアログに、以下のように入力。
- トップレベル
- Key store path: C:\android\keystore\sample_keystore.jks
- Password: <適当なパスワード>
- Key
- Alias: googlemaps_appkey
- Password: <適当なパスワード>
- Certificate
- First and Last Name: Sample Name
- Organization: Example
- Country Code: JP
ここでOKを押すと、先ほどのGenerate Signed APKのダイアログにパラメータが入った状態になる。
Next→APK Destination Folderを適当に選んでFinish。
3. アプリケーション鍵のSHA1フィンガープリント出力
コマンドプロンプト上で以下のコマンドを実行して、SHA1フィンガープリントを取得する (Mac等の場合は適宜読み替え)。
> cd C:\android\keytool > keytool -list -keystore sample_keystore.jks
出力結果 (抜粋)
キーストアには1エントリが含まれます googlemaps_appkey,2015/05/10, PrivateKeyEntry, 証明書のフィンガプリント(SHA1): ***
4. Google Developer Console上でプロジェクト作成&APIキー取得
Webブラウザから、Google Developer Consoleに接続し、今回作るAndroidアプリに対応したプロジェクトを作成し、Google Maps Android API利用のためのAPIキーを取得する。
Google Developer Consoleから「プロジェクトを作成」を選択し、以下のように入力する。
- プロジェクト名: SampleMapApp
- プロジェクトID: デフォルトのまま
プロジェクト画面から、API→Google Maps Android API→「APIを有効にする」の順に選択する。
さらに、プロジェクト画面から、認証情報→「公開APIへのアクセス」の下の「新しいキーを作成」→「Androidキー」の順に選択する。
「Androidキーの作成と許可対象Androidアプリの設定」画面が出てくるので、3で取得したアプリ鍵のSHA1フィンガープリントと、1で作成したパッケージ名をセミコロン区切りで並べて入力し、「作成」を押すと、生成されたAPIキーが表示される。
5. Android StudioプロジェクトへのGoogle Play servicesパッケージの追加
Android Studioでサンプルアプリ用プロジェクト (SampleMapApp) を開き、File→Project Structureを選択する。
Project Structure画面上で、app→Dependenciesのタブを開き、+ボタンを押し、さらに「1 Library dependency」を選択する。
Choose Library Dependencyの画面で、play-servicesを選択して、OKを押す。
6. AndroidManifestへのAPIキーとパーミッションの追加
Google Play serviceの呼び出しのため、<application>の子要素に以下の記述を追加する。
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
<application>の子要素として、4で取得したAPIキーを記述する (以下の "APK_KEY" の部分)。
<meta-data android:name="com.google.android.geo.API_KEY" android:value="API_KEY" />
<manifest>の子要素としてパーミッションを記述する。
Google Maps Android APIの呼び出しには以下のパーミッションが必須。
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
現在位置の取得のためには、以下のパーミッションが追加で必要。
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Google Maps Android APIは、地図のレンダリングにOpenGL ES version 2を使うため、<manifest>の子要素に以下の記述が必要。
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
7. レイアウトの記述
res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <fragment xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent" android:name="com.google.android.gms.maps.MapFragment"/>
8. アプリケーションコードの記述
MainActivity.java
package com.example.samplemapapp; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
9. 署名付きAPKファイルの生成
作成したAndroidアプリをエミュレータあるいは実機で動かすためには、署名付きAPKファイルを生成する必要がある。
Android Studio上で、Build→Generate Signed APKを選択して、1で作成したキーストアおよび鍵を指定する。