0

我正在使用 Google Fit Android API 来检索健身数据,这一切都像一个魅力。我还想访问当前登录用户的名称,GoogleSignInAccount .getDisplayName() 应该可以访问该名称;

示例代码:

 //Create a FitnessOptions instance, declaring the data types and access type (read and/or write) your app needs:
        FitnessOptions fitnessOptions = FitnessOptions.builder()
                .addDataType(DataType.TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
                .addDataType(DataType.TYPE_SLEEP_SEGMENT, FitnessOptions.ACCESS_READ)
                .addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ)
                .addDataType(DataType.AGGREGATE_HEART_RATE_SUMMARY, FitnessOptions.ACCESS_READ)
                .build();


        //Get an instance of the Account object to use with the API:
        GoogleSignInAccount account = GoogleSignIn.getAccountForExtension(this, fitnessOptions);
        GoogleSignInAccount acct = GoogleSignIn.getLastSignedInAccount(this);

        if (acct != null) {
            loggedInUser = account.getDisplayName();
        }

还有更多代码,但这应该是唯一重要的部分,我尝试获取最后一个签名的帐户和当前的并使用 acct.getDisplayName(); 它们都返回 null。account.getGrantedScopes() 就像一个魅力,所以我知道正确的帐户已附加。我还可以从 Google Fit、step hr 等中读取,唯一不起作用的是读取当前登录的用户名。

编辑:我现在看到我可能应该添加 DEFAULT_SIGN_IN 参数,但我还不知道在哪里添加它。

4

0 回答 0