注册密钥和 API 密钥

如需使用 Google Awareness API,您必须向应用添加 Google API 密钥。您需要的 API 密钥类型是 Android API 密钥。

所有 Android 应用都使用您拥有私钥的数字证书进行签名。如需详细了解数字证书,请参阅有关如何为应用签名的 Android 指南。

Android API 密钥与特定的证书-软件包对相关联。无论应用有多少用户,您只需为每个证书提供一个密钥。

您需要执行几个步骤才能为应用获取密钥。本指南详细介绍了这些步骤,并总结如下:

  1. 获取应用证书的相关信息。
  2. 在 Google Developers 控制台中注册一个项目,并将 User Context API 添加为该项目的服务。
  3. 请求密钥
  4. 将密钥添加到您的应用。为此,请向应用清单添加一个元素。

查找应用的证书信息

API 密钥是以应用数字证书的简要形式(即其 SHA-1 指纹)为基础。如需显示证书的 SHA-1 指纹,请先确保您使用的是正确的证书。您可以从以下两个证书中进行选择:

  • 调试证书:Android SDK 工具会在您执行调试 build 时自动生成此证书。此证书只能用于要测试的应用。请勿尝试发布使用调试证书签名的应用。 Android 开发者文档中的对您的调试 build 进行签名部分详细介绍了调试证书。
  • 发布证书:Android SDK 工具会在您执行发布 build 时自动生成此证书。您也可以使用 keytool 程序生成此证书。如果您已准备好公开发布应用,请使用此证书。

如需详细了解 keytool,请参阅其 Oracle 文档

显示调试证书指纹

结合使用 keytool 程序与 -v 参数来显示证书的 SHA-1 指纹。为此,请完成以下步骤:

  1. 找到您的调试密钥库文件。该文件的文件名为 debug.keystore,在您首次构建项目时创建。默认情况下,它与 Android 虚拟设备 (AVD) 文件存储在同一目录下:

    • OS X 和 Linux~/.android/
    • Windows Vista 和 Windows 7C:\Users\your_user_name\.android\
  2. 列出 SHA-1 指纹:

    • 对于Linux或OS X,请打开终端窗口并输入以下内容:

      keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    • 对于 Windows Vista 和 Windows 7,请运行以下命令:

      keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

您应看到类似于以下内容的输出:

Alias name: androiddebugkey
Creation date: Jan 01, 2013
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

显示发布证书指纹

结合使用 keytool 程序与 -v 参数来显示证书的 SHA-1 指纹。为此,请完成以下步骤:

  1. 找到您的发布证书密钥库文件。发布密钥库没有默认位置或名称。如果您在构建要发布的应用时未指定其发布密钥库的位置或名称,则该版本会保持 .apk 处于未签名状态,您需要先为其签名,然后才能发布该版本。对于发布证书,您还需要证书的别名、密钥库的密码以及证书。
  2. 输入以下内容可列出密钥库中所有密钥的别名:

    keytool -list -keystore your_keystore_name
          
  3. your_keystore_name 替换为密钥库的完全限定路径和名称。添加 .keystore 扩展。出现提示时,输入密钥库的密码。然后,keytool 会显示密钥库中所有密钥的别名。
  4. 在终端或命令提示符中输入以下内容:

          keytool -list -v -keystore your_keystore_name -alias your_alias_name
          
  5. your_keystore_name 替换为密钥库的完全限定路径和名称。添加 .keystore 扩展。
  6. your_alias_name 替换为您在创建证书时为其分配的别名。

您应看到类似于以下内容的输出:

Alias name: <alias_name>
Creation date: Feb 02, 2013
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: 4cc9b300
Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033
Certificate fingerprints:
    MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9
    SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75
    Signature algorithm name: SHA1withRSA
    Version: 3

SHA1 开头的行包含证书的 SHA-1 指纹。该指纹是以冒号分隔的 20 个两位十六进制数字的序列。

从 Google 开发者控制台获取 API 密钥

如需开始使用 Google Awareness API,请点击获取密钥按钮。该工具会关联到 Google Developers 控制台,该控制台会引导您完成整个流程并自动启用 Awareness API。

获取密钥

或者,请按照下列步骤获取 API 密钥:

  1. 前往 Google Developers Console
  2. 选择一个项目,或创建一个新项目。
  3. 点击继续以启用 Awareness API。
  4. 在“凭据”页面上,创建 Android 密钥并设置 API 凭据。

  5. 在“创建密钥”对话框中,您需要将使用范围限制为 Android 应用。为此,请输入应用的 SHA-1 指纹和软件包名称,如以下示例所示:

    BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
    
    com.example.android.awareness-example
    
  6. 点击创建。新的 Android API 密钥会显示在项目的 API 密钥列表中。API 密钥是类似于如下的字符串:

    AIzaSyBdVl-cTICSwYKrZ95LoVuw7dbMuDt1KG0
    

现在,您已拥有 API 密钥,可以将其添加到应用的清单中,如开始使用指南中所述。

激活其他 API

借助 Awareness API,您可以访问多种类型的情境数据,例如信标。如需使用这些类型,您需要在 Google Developers Console 中启用相应的 API。

服务 Awareness API 方法 要启用的 API
信标 SnapshotApi.getBeaconState()FenceApi.BeaconFence Nearby Messages API