0

我在尝试构建 google api 客户端以访问 fit api 时手机未连接到互联网时出现以下错误:connection failed. Cause: ConnectionResult{statusCode=NETWORK_ERROR, resolution=null, message=null}。我尝试了两种与 google fit api 连接的方法:

方法一:登录后连接Fit API,无网络时此方法无效。我认为登录过程需要互联网。

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .requestScopes(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE), new Scope(Scopes.FITNESS_LOCATION_READ))
            .build();

    return new GoogleApiClient.Builder(activity)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .addConnectionCallbacks(connectionCallbacks)
            .addOnConnectionFailedListener(failedListener)
            .addApi(Fitness.HISTORY_API)
            .addApi(Fitness.SESSIONS_API)
            .addApi(Fitness.RECORDING_API)
            .addApi(Fitness.SENSORS_API)
            .enableAutoManage(this, 0, this)
            .build();

方法2:因此我尝试删除登录功能,因为我觉得一旦用户登录并授权fit api收集数据,那么登录就不是必需的了。

googleApiClient = new GoogleApiClient.Builder(this)
                    .addApi(Fitness.HISTORY_API)
                    .addApi(Fitness.SESSIONS_API)
                    .addApi(Fitness.RECORDING_API)
                    .addApi(Fitness.SENSORS_API)
                    .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE))
                    .addConnectionCallbacks(this)
                    .addOnConnectionFailedListener(failedListener)
                    .build();

但是我在连接失败的侦听器中收到此错误ConnectionResult{statusCode=SIGN_IN_FAILED, resolution=null, message=null}

如何确保在没有互联网连接的情况下可以访问 fitApi?

4

1 回答 1

0

尝试以下解决方法:

  • 检查您的项目是否具有与之关联的产品名称和电子邮件地址,两者都可以在“同意屏幕”部分中找到。
  • 如果它不起作用,请删除该项目并重新创建它。
  • 基于此线程,如果应用程序未在谷歌开发者控制台中正确注册,则会出现此问题。

我认为您已经使用生产密钥库证书指纹(SHA1)在 Google 开发人员控制台上注册了应用程序,当您在具有调试密钥库的应用程序上对其进行测试时。

执行以下步骤:

  1. 使用调试密钥库证书指纹 (SHA1) 再创建一个客户端 ID。
  2. 卸载现有应用程序。
  3. 安装应用并连接到 Google fit。
  4. 检查 google fit app 并确保您的应用被列为已连接的应用(... > 设置 > 已连接的应用 > 已连接的应用和设备)。
  5. 现在运行上面的代码,它会工作!!!

检查这些相关票证:

希望这可以帮助!

于 2016-06-28T08:36:36.480 回答