本文档介绍了如何开始在 Android 上使用 Nearby Messages API 进行开发。Nearby Messages API 是 Google Play 服务的一部分。
第 1 步:获取 Google Play 服务
Nearby Messages API 可在搭载 Google Play 服务 7.8.0 或更高版本的 Android 设备上使用。搭载 Android 2.3 或更高版本且安装了 Google Play 商店应用的设备会自动收到 Google Play 服务的更新。如需检查您的设备上安装的是哪个版本的 Google Play 服务,请依次转到设置 > 应用 > Google Play 服务。
确保开发主机上有适用于 Google Play 服务的最新客户端库:
- 打开 Android SDK 管理器。
在 Appearance & Behavior > System Settings > Android SDK > SDK Tools 下,确保已安装以下软件包:
- Google Play 服务
- Google 代码库
第 2 步:获取 Google 帐号
如需使用 Nearby Messages API,您需要拥有一个 Google 帐号。 这样一来,开发者就可以在下一步中启用 Nearby API(您的用户无需拥有 Google 帐号)。如果您已有帐号,则一切就绪。您可能还需要一个单独的 Google 帐号,用于测试目的。
第 3 步:获取 API 密钥
请按照以下步骤启用 Android 版 Google Nearby Messages API 并获取 API 密钥:
- 转到 Google Developers Console。
- 创建或选择用于注册应用的项目。
- 点击继续以启用 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.nearbyexample
- 您的新 Android API 密钥会显示在项目的 API 密钥列表中。API 密钥是一串字符,如下所示:
AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0
获取证书的 SHA1 指纹
如需为您的 Android 应用创建新的 API 密钥,您需要用于为 APK 签名的证书的 SHA1 指纹。只能在使用同一项目中的 API 密钥签名的应用之间交换消息。
如需获取此指纹,请执行以下操作:
- 找到密钥库的位置。
- 在终端中,从 JDK 运行
keytool
实用程序。例如,如果您使用的是`debug`
密钥库: keytool
命令的输出包含证书的 SHA1 指纹。
$ keytool -alias \ androiddebugkey -keystore \ ~/.android/debug.keystore -list -v
注意:对于调试密钥库,密码为 android
。在 Mac OS 和 Linux 上,调试密钥库通常位于 ~/.android/
。在 Windows 上,该目录通常位于 %USERPROFILE%\
。
第 4 步:配置项目
借助 Android Studio,您可以轻松地为 Nearby Messages API 创建项目。按照创建项目中所述的步骤创建一个新项目。在 Android Studio 中,打开模块的 build.gradle
文件,并将 Google Play 服务客户端库添加为依赖项:
apply plugin: 'android' ... dependencies { compile 'com.google.android.gms:play-services-nearby:18.5.0' }
然后,使用上一步中生成的 API 密钥配置您的清单:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.sample.app" >
<application ...>
<meta-data
android:name="com.google.android.nearby.messages.API_KEY"
android:value="API_KEY" />
<activity>
...
</activity>
</application>
</manifest>
第 5 步:发布和订阅
在您的应用中,开始使用 Nearby Messages API。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
mMessageListener = new MessageListener() {
@Override
public void onFound(Message message) {
Log.d(TAG, "Found message: " + new String(message.getContent()));
}
@Override
public void onLost(Message message) {
Log.d(TAG, "Lost sight of message: " + new String(message.getContent()));
}
}
mMessage = new Message("Hello World".getBytes());
}
@Override
public void onStart() {
super.onStart();
...
Nearby.getMessagesClient(this).publish(mMessage);
Nearby.getMessagesClient(this).subscribe(mMessageListener);
}
@Override
public void onStop() {
Nearby.getMessagesClient(this).unpublish(mMessage);
Nearby.getMessagesClient(this).unsubscribe(mMessageListener);
...
super.onStop();
}
Nearby Messages API 需要征得用户同意。首次调用“发布”或“订阅”时,“附近”功能会显示一个选择启用对话框。