附近的Messages API在发布时返回状态代码2806

时间:2016-05-23 06:16:38

标签: android google-nearby

我正在尝试使用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");
                            }
                        }
                    });
        }
    }

我是否需要添加一些特殊权限或其他任何内容?

4 个答案:

答案 0 :(得分:6)

2806 = FORBIDDEN

您是否在清单中指定了应用的api密钥,并确保其具有正确的包名称和sha1指纹?

答案 1 :(得分:2)

使您的API密钥仅限于您的软件包名称和SHA1指纹。

  1. 转到 Google API控制台
  2. 转到凭据
  3. 如果您还没有 API密钥,请单击“创建凭据”并选择“API” 键。否则,请选择您当前的API密钥。
  4. 在主要限制下,选择 Android应用
  5. 输入Android应用的包名称 SHA1指纹
  6. 要查找SHA1指纹:
    • 打开命令提示符
    • 键入您当前的 Java JDK bin路径(例如cd C:\ Program Files \ Java \ jdk1.8.0_77 \ bin)
    • type keytool -list -v -keystore "PATH_OF_YOUR_KEYSTORE_FILE"(注意:debug.keystore可以在.android文件夹中找到(例如C:\ Users \ myUser \ .android \ debug.keystore)
    • 密码为 android
    • 复制SHA1指纹
  7. 点击保存
  8. 确保build.gradle中包含google Nearby依赖项。

    compile 'com.google.android.gms:play-services-nearby:10.0.1'
    

    请务必在Google控制台中启用Nearby Messages API。

    1. 转到 Google API控制台
    2. 转到图书馆
    3. 搜索附近的消息API
    4. 点击Nearby Messages API标题旁边的启用按钮。

答案 2 :(得分:0)

您是否检查过设备上安装的Google Play服务是否是最新的?或者至少它们与你在build.gradle中使用的版本匹配吗?

答案 3 :(得分:0)

如果仅使用非活动上下文(例如,应用程序或服务)进行订阅/发布,也会发生此错误。图书馆需要一个活动来显示加入消息。尝试在活动(以及从服务)中进行订阅。