1

我正在尝试使用 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

4 回答 4

6

2806=禁止

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

于 2016-05-26T00:26:37.647 回答
3

将您的 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)
    • 类型keytool -list -v -keystore "PATH_OF_YOUR_KEYSTORE_FILE"(注意:debug.keystore 可以在 .android 文件夹中找到(例如 C:\Users\myUser\.android\debug.keystore)
    • 密码是安卓
    • 复制SHA1指纹
  7. 点击保存

确保您的 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. 单击附近消息 API 标题旁边的启用按钮。
于 2017-01-25T10:18:23.013 回答
0

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

于 2019-04-03T11:06:18.650 回答
0

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

于 2016-05-25T12:41:38.157 回答