Androidのアプリ開発で、Google Mapを使えるようにする手順を書いておきます。
Googleの公式ページにも書いてあるのですが、英語なのと少しつまづいた部分があったので、備忘録として残しておきます。
Androidアプリの開発としてGoogle Mapsを試す手っ取り早い方法は、プロジェクトの新規作成でGoogle Maps Activityを選択することです。
本ページでは、このGoogle Maps Activityを使用してGoogle Mapsを表示できるようにします。
大まかな手順
AndroidアプリへGoogle Mapを表示できるようにするまでには、いくつか行わなければならないことがあります。
- Android Studioのインストール
- Googleアカウントの作成
- Androidアプリの実装
- Google Cloud Platformへの登録
- Google Mapsの有効化
- Google Maps API keyの取得
- AndroidアプリへGoogle Maps API keyの登録
上記1〜2についてはここでは省略させてもらい、3以降について詳しく書いていきたいと思います。
Androidアプリの実装
Google Mapsを使用するアプリを作成します。
冒頭でも書いたとおり、Google Maps Activityを使用します。
Android Studioを起動し、「Start a new Android Studio project」を選択します。

Select a Project Templateで「Google Maps Activity」を選択してNextボタンを押します。
「Google Maps Activity」は地図の絵になっているのでわかりやすいかと思います。

Configure Your Projectで、アプリ名やパッケージ名などを決めます。
ここではアプリ名のみTestMapとし、その他はそのままにしておきます。
(Package nameやSave locationの最後が自動的にTestMapになるので、なったままにします)

Finishボタンを押すとプロジェクトが展開してGradleコンパイルが走るのでしばらく待ちます。
もしGradleコンパイルが終わらないようでしたら、下記を参考にしてみてください。
プロジェクトが展開されると、以下のようなgoogle_maps_api.xmlファイルが自動的に開いていると思います。
<resources>
…
<string name=”google_maps_key” templateMergeStrategy=”preserve” translatable=”false”>YOUR_KEY_HERE</string>
</resources>
この中にあるYOUR_KEY_HEREにGoogle Cloud Platformで取得したAPI keyを書くことになります。
Google Cloud Platformへの登録
次にGoogle Maps API keyを取得するため、Google Cloud Platformへアクセスします。
Google Cloud Platformを使用するにはGoogleアカウントが必要なので、事前に取得しておいてください。
Google Cloud Platformへアクセスしたら、まずはプロジェクトを作成します。
左メニューから [IAMと管理] を探して選択し、IAMページを開いてください。
そして、上部の [プロジェクトの選択] を選択します。

さらに [新しいプロジェクト] を選択します。

新しいプロジェクトページが表示されるので、プロジェクト名を「TestMap」として作成ボタンを押します。

Google Mapsの有効化
Google Mapsを使えるようにするため、Google Cloud PlatformでGoogle Mapsの有効化を行う必要があります。
この有効化を行わないと、
2020-04-01 16:07:59.882 1316-1585/? E/Google Maps Android API: Authorization failure.
Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
というAuthorization failureエラーが出たりするのですが、原因にたどり着くまで少し時間を無駄にしてしまいました。
有効化の方法ですが、Google Cloud Platformの左メニューから、[APIとサービス] – [ライブラリ] を選択しライブラリページを表示し、「Maps SDK for Android」を選択します。
この時、上部のプロジェクト名が「TestMap」になっていることを確認してください。

Maps SDK for Androidのページであることを確認し、「有効にする」ボタンを押します。

Google Maps API keyの取得
次に、Google Map用のAPI keyを作成します。
Google Cloud Platformの左メニューから、[APIとサービス] – [認証情報] を選択し認証情報ページを表示します。
この時、上部のプロジェクト名が「TestMap」になっていることを確認してください。

次に、上部にある「認証情報を作成」をクリックし、[APIキー] を選択してください。

APIキーを作成しましたという画面が出るので閉じてください。
API keyはあとで確認できるのでここで覚える必要はありません。
APIキーのグループに、1つAPIキーが追加されていることを確認してください。

このキーが、Androidアプリに記載するAPI Keyとなります。
この時点でも使用可能なのですが、キーに制限をかけるため、
編集アイコン(えんぴつアイコン)をクリックして編集画面を表示します。
編集画面では「アプリケーションの制限」を [Androidアプリ] に変更します。
また、[Androidアプリ] に変更すると、アプリのパッケージ名とSHA-1 証明書のフィンガープリントという項目が出るので、入力します。
アプリのパッケージ名には作成したTestMapアプリのパッケージ名を入力します。
パッケージ名がわからない場合は、AndroidManifest.xmlの上方で確認できます。
下の例では、「jp.hoge.testmap」がパッケージ名になります。
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jp.hoge.testmap">
SHA-1 証明書のフィンガープリントについては、編集画面の右側に作成方法が載っています。
LinuxやMacの場合は、
$ keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
で、Windowsの場合は、
$ keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
です。
ただしこれらはデバッグ用の作成方法で、リリース用の場合は、
$ keytool -list -v -keystore your_keystore_name -alias your_alias_name your_keystore_name は、.keystore 拡張子を含む完全修飾パスとキーストア名で置き換えてください。 your_alias_name は作成時に証明書に割り当てたエイリアスで置き換えてください。
とのことです。
上記で作成するか、もしくはgoogle_maps_api.xmlをよ〜く見てみてください。
Package name:
jp.hoge.testmap
SHA-1 certificate fingerprint:
11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:11:22:33:44:55
といった記載があると思います。これを入力すれば良いです。
(上の記載は例ですので、実際にgoogle_maps_api.xmlに記載されている値を使用してください。さらに言えば、一発で作成できるURLも書いてあったりなかったり…)
最終的には以下のようになります。

パッケージ名とSHA-1を入力したら、すぐ下にある完了ボタンを押してください。
最後に、1番下の保存ボタンを押して終わりです。
尚、設定が反映されるまで、最大で5分程度かかるそうです。
AndroidアプリへGoogle Maps API keyの登録
最後に、取得したGoogle Maps API Keyをアプリへ登録します。
Androidアプリの実装の最後にも書いたgoogle_maps_api.xmlのYOUR_KEY_HEREを取得したAPI Keyで置き換えます。
尚、API Keyは、AIzaから始まる文字列です。(SHA-1証明書ではないので注意してください)
<resources>
...
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">AIzaXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</string>
</resources>
置き換えたら、保存して、プロジェクトをリビルドすればOKです。
あとはエミューレーターやスマホで実行し、地図が表示されれば完了です。お疲れ様でした。

最後に
いかがでしたでしょうか?
このように、AndroidアプリとGoogle Cloud Platform間で、共通のKeyを使用することで、Androidアプリ上でGoogleサービスを使用することができるようになります。
ちょっと手間に感じるかもしれませんが、慣れてしまえばそんなに大変ではありません。
が、頻繁に行う必要が無いため、やはり忘れてしまいます。
おまけに使用されてる方はご存知かと思いますが、Googleのサービス管理画面、結構変わります。
少しアクセスしないと、画面が一新されており、何がどこにあるのかサッパリということも。
そういうこともあり、備忘録として残したのですが、いつまで使えるものやら…。
コメント