簡體   English   中英

在Google Fit中請求超時-Android Wear 2.0

[英]Request timeout in Google Fit - Android wear 2.0

我在Android Wear 2.0上獲取Google Fit數據時遇到問題。 我的請求正在收到TIMEOUT響應。 如果await()方法沒有參數,則沒有響應(await()方法未返回)。 有什么線索怎么了?

應用程序使用Google登錄 ,所有內容均可在常規Android設備上運行。

創建GoogleApiClient和SignInAccount

 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();
    }

您可能需要檢查插入數據的正確過程,其中討論了將數據插入適應性歷史記錄的過程,請先創建一個DataSet實例,然后再使用HistoryApi.insertData方法並同步等待,或者提供一個回調方法來檢查數據的狀態。插入。

有關更詳細的信息和示例代碼,您可能需要查看完整的文檔

G + GoogleFitDevelopersGroup在這里也提出類似的問題。 多虧了PujieWear,我們才得以解決問題。 您必須使用兩種不同的GoogleApiClient,一種用於認證,第二種用於獲取數據。 我不確定這是否是使用Google登錄的正確方法,但是可以。 //但是,似乎在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();
                    [...]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM