注册和 API 密钥

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

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

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

您需要执行多个步骤才能获取应用密钥。本指南会详细描述这些步骤,总结如下:

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

查找应用的证书信息

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

  • 调试证书:Android SDK 工具会在您执行调试 build 时自动生成此证书。此证书只能用于要测试的应用。请勿尝试发布使用调试证书签名的应用。 如需详细了解调试证书,请参阅 Android 开发者文档中的对调试 build 进行签名部分。
  • 发布证书:Android SDK 工具会在您执行发布 build 时自动生成此证书。您还可以使用 keytool 程序生成此证书。当您准备好向全世界发布应用时,请使用此证书。

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

调试证书

显示调试证书指纹

使用带有 -v 参数的 keytool 程序显示证书的 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
发布证书

显示发布证书指纹

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

  1. 找到您的发布证书密钥库文件。发布密钥库没有默认位置或名称。如果您在构建要发布的应用时未指定其发布原因,则该 build 会将您的 .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 Developers Console 获取 API 密钥

要开始使用 Google Awareness API,请点击获取密钥按钮。该功能会关联到 Google Developers Console,后者可指导您完成此流程并自动激活 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