我正在尝试使用Nearby API发布一条简单的短信,但它返回的是未知状态代码= 2806.这是我的示例代码
private void publish(String message) {
Log.i(TAG, "Publishing message: " + message);
mActiveMessage = new Message(message.getBytes());
if (!mGoogleApiClient.isConnected()) {
if (!mGoogleApiClient.isConnecting()) {
mGoogleApiClient.connect();
}
} else {
PublishOptions options = new PublishOptions.Builder()
.setStrategy(Strategy.DEFAULT)
.setCallback(new PublishCallback() {
@Override
public void onExpired() {
super.onExpired();
Log.i(TAG, "no longer publishing");
}
}).build();
Nearby.Messages.publish(mGoogleApiClient, mActiveMessage,options)
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (status.isSuccess()) {
Log.i(TAG, "published successfully");
} else {
Log.i(TAG, "could not publish");
}
}
});
}
}
我是否需要添加一些特殊权限或其他任何内容?
答案 0 :(得分:6)
2806 = FORBIDDEN
您是否在清单中指定了应用的api密钥,并确保其具有正确的包名称和sha1指纹?
答案 1 :(得分:2)
使您的API密钥仅限于您的软件包名称和SHA1指纹。
keytool -list -v -keystore "PATH_OF_YOUR_KEYSTORE_FILE"
(注意:debug.keystore可以在.android文件夹中找到(例如C:\ Users \ myUser \ .android \ debug.keystore)确保build.gradle中包含google Nearby依赖项。
compile 'com.google.android.gms:play-services-nearby:10.0.1'
请务必在Google控制台中启用Nearby Messages API。
答案 2 :(得分:0)
您是否检查过设备上安装的Google Play服务是否是最新的?或者至少它们与你在build.gradle中使用的版本匹配吗?
答案 3 :(得分:0)
如果仅使用非活动上下文(例如,应用程序或服务)进行订阅/发布,也会发生此错误。图书馆需要一个活动来显示加入消息。尝试在活动(以及从服务)中进行订阅。