Google Fit-Android wear 2.0中的请求超时
我在Android Wear 2.0上获取google fit数据时遇到问题。 我的请求得到超时响应。如果await()方法没有参数,则没有响应(await()方法没有返回)。有什么线索吗 应用程序使用,所有东西都可以在普通的安卓设备上运行 创建GoogleAppClient和SignInAccountGoogle Fit-Android wear 2.0中的请求超时,android,wear-os,google-fit,android-wear-2.0,Android,Wear Os,Google Fit,Android Wear 2.0,我在Android Wear 2.0上获取google fit数据时遇到问题。 我的请求得到超时响应。如果await()方法没有参数,则没有响应(await()方法没有返回)。有什么线索吗 应用程序使用,所有东西都可以在普通的安卓设备上运行 创建GoogleAppClient和SignInAccount GoogleSignInOptions signInConfig = new GoogleSignInOptions .Builder(GoogleSignIn
GoogleSignInOptions signInConfig = new GoogleSignInOptions
.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestScopes(new Scope(Scopes.FITNESS_LOCATION_READ),new Scope(Scopes.FITNESS_ACTIVITY_READ))
.build();
client = new GoogleApiClient.Builder(this)
.enableAutoManage(this,this)
.addApi(Auth.GOOGLE_SIGN_IN_API, signInConfig)
.addApi(Fitness.HISTORY_API)
.addApi(Fitness.GOALS_API)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
登录过程完成后,我运行:
new Thread(new Runnable() {
@Override
public void run() {
PendingResult<DailyTotalResult> result =
Fitness.HistoryApi.readDailyTotal(client, TYPE_STEP_COUNT_DELTA);
DailyTotalResult totalResult = result.await(60,TimeUnit.SECONDS);
if (totalResult.getStatus().isSuccess()) {
DataSet totalSet = totalResult.getTotal();
long total = totalSet.isEmpty()? 0 : totalSet.getDataPoints().get(0).getValue(FIELD_STEPS).asInt();
p("daily steps " + total);
}}).start();
}
new线程(new Runnable()){
@凌驾
公开募捐{
Pendingreult结果=
Fitness.HistoryApi.readDailyTotal(客户端,类型\步骤\计数\增量);
DailyTotalResult totalResult=结果。等待(60,时间单位。秒);
if(totalResult.getStatus().isSuccess()){
DataSet totalSet=totalResult.getTotal();
long total=totalSet.isEmpty()?0:totalSet.getDataPoints().get(0).getValue(字段步骤).asInt();
p(“每日步数”+总计);
}}).start();
}
您可能希望检查正确的过程,其中讨论了将数据插入到适应度历史记录中,首先在使用该方法之前创建一个实例并同步等待,或者提供一个回调方法来检查插入的状态
有关更详细的信息和示例代码,您可能需要检查。询问了类似的问题。多亏了我们才设法解决了这个问题。您必须使用两个不同的GoogleAppClient,一个用于进行身份验证,另一个用于获取数据。
我不确定这是否是使用谷歌登录的正确方式,但它确实有效。
//然而,在Wear 2.0上,范围似乎还没有得到正确的解决
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult signInResult = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (signInResult.isSuccess()) {
acct = signInResult.getSignInAccount();
editor.putString(ACCOUNT_NAME_PREFS,acct.getEmail());
editor.commit();
dataGoogleApiClientBuilder.setAccountName(acct.getEmail());
dataGoogleApiClient = dataGoogleApiClientBuilder.build();
dataGoogleApiClient.connect();
[...]