如需使用 Google Awareness API,您必须向应用添加 Google API 密钥。您需要的 API 密钥类型是 Android API 密钥。
所有 Android 应用都使用您拥有私钥的数字证书进行签名。如需详细了解数字证书,请参阅有关如何为应用签名的 Android 指南。
Android API 密钥与特定的证书-软件包对相关联。无论应用有多少用户,您只需为每个证书提供一个密钥。
您需要执行几个步骤才能为应用获取密钥。本指南详细介绍了这些步骤,并总结如下:
- 获取应用证书的相关信息。
- 在 Google Developers 控制台中注册一个项目,并将 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 指纹。为此,请完成以下步骤:
- 找到您的发布证书密钥库文件。发布密钥库没有默认位置或名称。如果您在构建要发布的应用时未指定其发布密钥库的位置或名称,则该版本会保持
.apk
处于未签名状态,您需要先为其签名,然后才能发布该版本。对于发布证书,您还需要证书的别名、密钥库的密码以及证书。 输入以下内容可列出密钥库中所有密钥的别名:
keytool -list -keystore
your_keystore_name - 将
your_keystore_name
替换为密钥库的完全限定路径和名称。添加.keystore
扩展。出现提示时,输入密钥库的密码。然后,keytool
会显示密钥库中所有密钥的别名。 在终端或命令提示符中输入以下内容:
keytool -list -v -keystore
your_keystore_name -aliasyour_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 开发者控制台获取 API 密钥
如需开始使用 Google Awareness API,请点击获取密钥按钮。该工具会关联到 Google Developers 控制台,该控制台会引导您完成整个流程并自动启用 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 |