如需使用 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 文档。
显示调试证书指纹
使用带有 -v
参数的 keytool
程序显示证书的 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
显示发布证书指纹
使用带有 -v
参数的 keytool
程序显示证书的 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 |