スポンサーリンク

【Androidアプリ開発】Google Mapを使えるようにするには?

Androidのアプリ開発で、Google Mapを使えるようにする手順を書いておきます。
Googleの公式ページにも書いてあるのですが、英語なのと少しつまづいた部分があったので、備忘録として残しておきます。

Androidアプリの開発としてGoogle Mapsを試す手っ取り早い方法は、プロジェクトの新規作成でGoogle Maps Activityを選択することです。
本ページでは、このGoogle Maps Activityを使用してGoogle Mapsを表示できるようにします。

スポンサーリンク

大まかな手順

AndroidアプリへGoogle Mapを表示できるようにするまでには、いくつか行わなければならないことがあります。

  1. Android Studioのインストール
  2. Googleアカウントの作成
  3. Androidアプリの実装
  4. Google Cloud Platformへの登録
  5. Google Mapsの有効化
  6. Google Maps API keyの取得
  7. 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ファイルが自動的に開いていると思います。

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のサービス管理画面、結構変わります。
少しアクセスしないと、画面が一新されており、何がどこにあるのかサッパリということも。

そういうこともあり、備忘録として残したのですが、いつまで使えるものやら…。

コメント