如需使用 Google Awareness API,您必须向应用添加 Google API 密钥。您需要的 API 密钥类型是 Android API 密钥。
所有 Android 应用都使用您持有私钥的数字证书进行签名。如需详细了解数字证书,请参阅有关如何为应用签名的 Android 指南 。
Android API 密钥与特定的证书-软件包对相关联。无论您的应用有多少用户,每个证书只需要一个密钥。
您需要执行几个步骤才能获取应用的密钥。本指南对此进行了详细介绍,并总结如下:
- 获取有关应用证书的信息。
- 在 Google Developers Console 中注册项目,并将 User Context API 添加为项目的服务。
- 请求密钥。
- 将密钥添加到应用。为此,请向应用清单添加一个元素。
查找应用的证书信息
API 密钥基于应用数字证书的简要形式, 即其 SHA-1 指纹。如需显示证书的 SHA-1 指纹,请先确保您使用的是正确的 证书。您可能需要从以下两个证书中进行选择:
- 调试证书:Android SDK 工具会在您执行调试 build 时自动生成 此证书。此证书只能用于要测试的应用。 请勿尝试发布使用调试证书签名的应用。 Android 开发者文档中的 对您的 调试 build 进行签名部分详细介绍了调试证书。
- 发布证书:Android SDK 工具会在您执行发布 build 时自动生成
此证书。您还可以使用此
证书与
keytool程序。当您准备好向全球发布应用时,请使用此证书。
如需详细了解 keytool,请参阅其
Oracle 文档。
显示调试证书指纹
结合使用 keytool 程序与 -v 参数来显示证书的 SHA-1 指纹。为此,请完成以下步骤:
找到您的调试密钥库文件。该文件名为
debug.keystore,它会在您首次构建 项目时创建。默认情况下,它与 Android 虚拟设备 (AVD) 文件存储在同一目录下:- OS X 和 Linux:
~/.android/ - Windows Vista 和 Windows 7:
C:\Users\your_user_name\.android\
- OS X 和 Linux:
列出 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 指纹。为此,请完成以下步骤:
- 找到您的发布证书密钥库文件。发布密钥库没有默认
位置或名称。如果您在构建应用以进行发布时未指定密钥库,build 会使您的
.apk处于未签名状态,您必须先对其进行签名,然后才能发布。对于发布证书,您还需要证书的 别名、密钥库的密码以及证书的密码。 输入以下内容,以列出密钥库中所有密钥的别名:
keytool -list -keystore your_keystore_name
- 将
your_keystore_name替换为密钥库的完全限定 路径和名称。请添加.keystore扩展名。出现提示时,请输入密钥库的密码。然后,keytool会显示密钥库中所有密钥的别名。 在终端或命令提示符中输入以下内容:
keytool -list -v -keystore your_keystore_name -alias your_alias_name
- 将
your_keystore_name替换为密钥库的完全限定 路径和名称。请添加.keystore扩展名。 - 将
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 密钥:
- 转到 Google Developers Console。
- 选择一个项目,或创建一个新项目。
- 点击继续 以启用 Awareness API。
在“凭据”页面上,创建一个 Android 密钥并设置 API 凭据。
在“创建密钥”对话框中,您需要将使用范围限定为 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点击创建 。新的 Android API 密钥会显示在项目的 API 密钥列表中。API 密钥是一串字符,如下所示:
AIzaSyBdVl-cTICSwYKrZ95LoVuw7dbMuDt1KG0
现在您已拥有 API 密钥,可以按照 入门指南中的说明将其添加到应用清单中。
激活其他 API
借助 Awareness API,您可以访问多种类型的上下文数据,例如 信标。如需使用这些类型,您需要在 Google Developers Console 中启用相应的 API。
| 服务 | Awareness API 方法 | 要启用的 API |
|---|---|---|
| 信标 | SnapshotApi.getBeaconState()、
FenceApi.BeaconFence |
Nearby Messages API |