当尝试构建google api客户端以访问fit api时,我在移动设备未连接到互联网时收到以下错误:connection failed. Cause: ConnectionResult{statusCode=NETWORK_ERROR, resolution=null, message=null}
。我尝试过两种方式连接google fit api:
方法1:此方法在登录后与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:因此我尝试删除了登录功能,因为我觉得一旦用户登录并授权使用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?
答案 0 :(得分:0)
尝试以下解决方法:
我认为您已在Google开发者控制台上注册了应用 生产密钥库证书指纹(SHA1) 在具有调试密钥库的应用程序上测试它。
执行以下步骤:
- 使用调试密钥库证书指纹(SHA1)再创建一个客户端ID。
- 卸载现有应用。
- 安装应用&连接到Google fit。
- 检查google fit app&确保您的应用程序列为已连接的应用程序(...>设置>已连接的应用程序>已连接的应用程序& 设备)。
- 现在运行上面的代码&它会起作用!!!
醇>
检查这些相关的门票:
希望这有帮助!