Google マップ API キーを取得するObtaining a Google Maps API Key

Android で Google Maps 機能を使用するには、Maps API キーを Google に登録する必要があります。To use the Google Maps functionality in Android, you need to register for a Maps API key with Google. これを行うまで、アプリケーションには、マップではなく空白のグリッドだけが表示されます。Until you do this, you will just see a blank grid instead of a map in your applications. Google Maps Android API v2 キーを取得する必要があります。古い Google Maps Android API v1 キーは機能しません。You must obtain a Google Maps Android API v2 key - keys from the older Google Maps Android API key v1 will not work.

Maps API v2 キーを取得するには、次の手順を実行します。Obtaining a Maps API v2 key involves the following steps:

  1. アプリケーションの署名に使用されるキーストアの SHA-1 フィンガープリントを取得します。Retrieve the SHA-1 fingerprint of the keystore that is used to sign the application.
  2. Google API Console でプロジェクトを作成します。Create a project in the Google APIs console.
  3. API キーを取得します。Obtaining the API key.

署名キーのフィンガープリントを取得するObtaining your Signing Key Fingerprint

Google に Maps API キーを要求するには、アプリケーションの署名に使用されるキーストアの SHA-1 フィンガープリントを知っておく必要があります。To request a Maps API key from Google, you need to know the SHA-1 fingerprint of the keystore that is used to sign the application. 通常は、デバッグ キーストアの SHA-1 フィンガープリントと、アプリケーションの署名に使用されるリリース キーストアの SHA-1 フィンガープリントを確認する必要があります。Typically, this means you will have to determine the SHA-1 fingerprint for the debug keystore, and then the SHA-1 fingerprint for the keystore that is used to sign your application for release.

既定では、Xamarin.Android アプリケーションのデバッグ バージョンの署名に使用されるキーストアは次の場所にあります。By default the keystore that is used to sign debug versions of a Xamarin.Android application can be found at the following location:

C:\Users\[ユーザー名]\AppData\Local\Xamarin\Mono for Android\debug.keystoreC:\Users\[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore

キーストアに関する情報は、JDK から keytool コマンドを実行して取得できます。Information about a keystore is obtained by running the keytool command from the JDK. 通常、このツールは Java bin ディレクトリにあります。This tool is typically found in the Java bin directory:

C:\Program Files\Android\jdk\microsoft_dist_openjdk_[VERSION]\bin\keytool.exeC:\Program Files\Android\jdk\microsoft_dist_openjdk_[VERSION]\bin\keytool.exe

次のコマンドを使用して keytool を実行します (上記のファイル パスを使用)。Run keytool using the following command (using the file paths shown above):

keytool -list -v -keystore [STORE FILENAME] -alias [KEY NAME] -storepass [STORE PASSWORD] -keypass [KEY PASSWORD]

Debug.keystore の例Debug.keystore Example

(デバッグ用に自動的に作成される) 既定のデバッグ キーの場合、次のコマンドを使用します。For the default debug key (which is automatically created for you for debugging), use this command:

keytool.exe -list -v -keystore "C:\Users\[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

実稼働キーProduction Keys

アプリを Google Play にデプロイする場合、秘密キーで署名する必要があり ます。When deploying an app to Google Play, it must be signed with a private key. 秘密キーの詳細と、実稼働 Google Maps API キーの作成に使用される取得済みの SHA-1 フィンガープリントを使用して、keytool を実行する必要があります。The keytool will need to be run with the private key details, and the resulting SHA-1 fingerprint used to create a production Google Maps API key. デプロイする前に、AndroidManifest.xml ファイルを正しい Google Maps API キーで必ず更新してください。Remember to update the AndroidManifest.xml file with the correct Google Maps API key before deployment.

keytool の出力Keytool Output

コンソール ウィンドウに次のような出力が表示されます。You should see something like the following output in your console window:

Alias name: androiddebugkey
Creation date: Jan 01, 2016
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4aa9b300
Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033
Certificate fingerprints:
    MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9
    SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75
    Signature algorithm name: SHA1withRSA
    Version: 3

(SHA1 の後に表示されている) SHA-1 フィンガープリントは、このガイドで後ほど使用します。You will use the SHA-1 fingerprint (listed after SHA1) later in this guide.

API プロジェクトを作成するCreating an API project

署名キーストアの SHA-1 フィンガープリントを取得したら、Google API Console で新しいプロジェクトを作成する (または Google Maps Android API v2 サービスを既存のプロジェクトに追加する) 必要があります。After you have retrieved the SHA-1 fingerprint of the signing keystore, it is necessary to create a new project in the Google APIs console (or add the Google Maps Android API v2 service to an existing project).

  1. ブラウザーで、Google Developers Console の [API とサービス] ダッシュボードに移動し、 [プロジェクトの選択] をクリックします。In a browser, navigate to the Google Developers Console API & Services Dashboard and click Select a project. プロジェクト名をクリックするか、 [新しいプロジェクト] をクリックして新しいプロジェクトを作成します。Click on a project name or create a new one by clicking NEW PROJECT:

    Google Developer Console のプロジェクトの作成ボタン。Google Developer Console CREATE PROJECT button.

  2. 新しいプロジェクトを作成する場合は、表示される [新しいプロジェクト] ダイアログにプロジェクト名を入力します。If you created a new project, enter the project name in the New Project dialog that is displayed. このダイアログでは、プロジェクト名に基づいた一意のプロジェクト ID が作成されます。This dialog will manufacture a unique project ID that is based on your project name. 次の例に示すように、 [作成] ボタンをクリックします。Next, click the Create button as shown in this example:

    新しいプロジェクトには XamarinMapsDemo という名前が付けられます。New project is named XamarinMapsDemo.

  3. 1 分程度でプロジェクトが作成され、プロジェクトの [ダッシュボード] ページが表示されます。After a minute or so, the project is created and you are taken to the Dashboard page of the project. そこから、 [API とサービスの有効化] をクリックします。From there, click ENABLE APIS AND SERVICES:

    [ライブラリ] セクションでの Google Maps Android API のクリック。Clicking Google Maps Android API in the Library section.

  4. [API ライブラリ] ページで、 [Maps SDK for Android] をクリックします。From the API Library page, click Maps SDK for Android. 次のページで、 [有効にする] をクリックして、このプロジェクトでサービスを有効にします。On the next page, click ENABLE to turn on the service for this project:

    [ダッシュボード] セクションでの [有効にする] ボタンのクリック。Clicking the ENABLE button in the Dashboard section.

この時点で、API プロジェクトが作成され、Google Maps Android API v2 が追加されました。At this point the API project has been created and Google Maps Android API v2 has been added to it. ただし、プロジェクトの資格情報を作成するまで、プロジェクトでこの API を使用することはできません。However, you cannot use this API in your project until you create credentials for it. 次のセクションでは、API キーを作成し、このキーを使用する権限を Xamarin.Android アプリケーションに与える方法について説明します。The next section explains how to create an API key and authorize a Xamarin.Android application to use this key.

API キーを取得するObtaining the API Key

Google Developers Console で API プロジェクトが作成されたら、Android API キーを作成する必要があります。After the Google Developer Console API project has been created, it is necessary to create an Android API key. Xamarin.Android アプリケーションに Android Map API v2 へのアクセスを許可するには、API キーが必要です。Xamarin.Android applications must have an API key before they are granted access to Android Map API v2.

  1. (前の手順で [有効にする] をクリックした後に) 表示された [Maps SDK for Android] ページで、 [認証情報] タブに移動し、 [認証情報を作成] ボタンをクリックします。In the Maps SDK for Android page that is displayed (after clicking ENABLE in the previous step), go to the Credentials tab and click the Create credentials button:

    Maps SDK for Android の資格情報に関するメッセージ。Maps SDK for Android Credentials message.

  2. [API キー] をクリックします。Click API key:

    プロジェクトに資格情報を追加するためのダイアログ。Add credentials to your project dialog.

  3. このボタンをクリックすると、API キーが生成されます。After this button is clicked, the API key is generated. 次に、自分のアプリだけがこのキーを使用して API を呼び出すことができるように、このキーを制限する必要があります。Next it is necessary to restrict this key so that only your app can call APIs with this key. [キーを制限] をクリックします。Click RESTRICT KEY:

    [認証情報] ページでの [キーを制限] のクリック。Clicking Restrict Key on the Credentials page.

  4. [名前] フィールドを API キー 1 から、キーの使用目的を思い出しやすい名前に変更します (この例では XamarinMapsDemoKey を使用)。Change the Name field from API Key 1 to a name that will help you remember what the key is used for (XamarinMapsDemoKey is used in this example). 次に、 [Android アプリ] ラジオ ボタンをクリックします。Next, click the Android apps radio button:

    [認証情報] ページでの [Android アプリ] の選択。Selecting Android apps on the Credentials page.

  5. SHA-1 フィンガープリントを追加するには、 [+ パッケージ名とフィンガープリントを追加] をクリックします。To add the SHA-1 fingerprint, click + Add package name and fingerprint:

    [+ パッケージ名とフィンガープリントを追加] のクリック。Clicking Add package name and fingerprint.

  6. アプリのパッケージ名を入力し、SHA-1 証明書フィンガープリント (このガイドで前述したように、keytool を使用して取得) を入力します。Enter your app's package name and enter the SHA-1 certificate fingerprint (obtained via keytool as explained earlier in this guide). 次の例では、XamarinMapsDemo のパッケージ名が入力され、debug.keystore から取得した SHA-1 証明書フィンガープリントが入力されています。In the following example, the package name for XamarinMapsDemo is entered, followed by the SHA-1 certificate fingerprint obtained from debug.keystore:

    入力されたパッケージ名は com.xamarin.docs.android.map です。Package name entered is com.xamarin.docs.android.map.

  7. APK が Google Maps にアクセスするには、APK の署名に使用するすべてのキーストア (デバッグおよびリリース) の SHA-1 フィンガープリントとパッケージ名を含める必要があります。Note that, in order for your APK to access Google Maps, you must include SHA-1 fingerprints and package names for every keystore (debug and release) that you use to sign your APK. たとえば、1 台のコンピューターをデバッグに使用し、別のコンピューターをリリース APK の生成に使用する場合、最初のコンピューターのデバッグ キーストアの SHA-1 証明書フィンガープリントと、2 番目のコンピューターのリリース キーストアの SHA-1 証明書フィンガープリントを含める必要があります。For example, if you use one computer for debug and another computer for generating the release APK, you should include the SHA-1 certificate fingerprint from the debug keystore of the first computer and the SHA-1 certificate fingerprint from the release keystore of the second computer. 次の例に示すように、 [+ パッケージ名とフィンガープリントを追加] をクリックして、別のフィンガープリントとパッケージ名を追加します。Click + Add package name and fingerprint to add another fingerprint and package name as shown in this example:

    別のフィンガープリントを追加すると、別の SHA-1 証明書が作成されます。Adding another fingerprint creates another SHA-1 certificate.

  8. [Save](保存) ボタンをクリックして変更内容を保存します。Click the Save button to save your changes. 次に、API キーの一覧に戻ります。Next, you are returned to the list of your API keys. 以前に作成した他の API キーがある場合は、それらもここに表示されます。If you have other API keys that you have created earlier, they will also be listed here. この例では、前の手順で作成された API キーだけが表示されています。In this example, only one API key (created in the previous steps) is listed:

    XamarinMapsDemoKey が API キーの一覧に表示されています。XamarinMapsDemoKey is shown in the API keys list.

プロジェクトを課金対象アカウントに接続するConnect the project to a billable account

2018 年 6 月 11 日以降、プロジェクトが課金対象アカウントに接続されていない場合、API キーは機能しません (そのサービスがモバイル アプリで引き続き無料である場合も同様です)。Beginning June,11 2018, the API key will not work if the project is not connected to a billable account (even if the service is still free for mobile apps).

  1. ハンバーガー メニュー ボタンをクリックし、 [お支払い] ページを選択します。Click the hamburger menu button and select the Billing page:

    ハンバーガー メニューの [お支払い] セクションの選択。Selecting the hamburger menu billing section.

  2. [請求先アカウントをリンク] をクリックし、表示されるポップアップで [請求先アカウントの作成] をクリックして、プロジェクトを請求先アカウントにリンクします (アカウントがない場合は、指示に従って新しいアカウントを作成します)。Link the project to a billing account by clicking Link a billing account followed by CREATE BILLING ACCOUNT on the displayed popup (if you don't have an account, you will be guided to create a new one):

    プロジェクトを請求先アカウントにリンクします。Link project to billing account.

プロジェクトにキーを追加するAdding the Key to Your Project

最後に、この API キーを Xamarin.Android アプリの AndroidManifest.XML ファイルに追加します。Finally, add this API key to the AndroidManifest.XML file of your Xamarin.Android app. 次の例では、YOUR_API_KEY が、前の手順で生成された API キーに置き換えられます。In the following example, YOUR_API_KEY is to be replaced with the API key generated in the previous steps:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionName="4.10" package="com.xamarin.docs.android.mapsandlocationdemo"
    android:versionCode="10">
...
  <application android:label="@string/app_name">
    <!-- Put your Google Maps V2 API Key here. -->
    <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="YOUR_API_KEY" />
    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
  </application>
</manifest>