Нет ничего плохого в строках, которые вы использовали для запроса количества шагов. Проблема заключается в предоставлении авторизации. Следует отметить, что данные, к которым приложение может получить доступ, должны находиться в пределах, предоставленных приложению на веб-сайте Huawei Developers, и в пределах диапазона данных, для которых пользовательское разрешение было предоставлено на стороне устройства.
Что касается этой проблемы, убедитесь, что разрешения на чтение / запись для данных подсчета шагов были предоставлены, когда приложение отображает экран авторизации данных. Вы можете обратиться к следующему коду или к образцу кода для Health Kit по адресу https://developer.huawei.com/consumer/en/doc/development/HMS-Examples/healthkit_Android_sample_code.
private void dataAuthorization() {
Log.i(TAG, "begin sign in");
// The data that can be used here and its read/write permissions can only be those you have applied for from the Huawei Developers website.
List < Scope > scopeList = new ArrayList < > ();
scopeList.add(new Scope(Scopes.HEALTHKIT_STEP_BOTH));
HuaweiIdAuthParamsHelper authParamsHelper =
new HuaweiIdAuthParamsHelper(HuaweiIdAuthParams.DEFAULT_AUTH_REQUEST_PARAM);
HuaweiIdAuthParams authParams =
authParamsHelper.setIdToken().setAccessToken().setScopeList(scopeList).createParams();
final HuaweiIdAuthService authService =
HuaweiIdAuthManager.getService(this.getApplicationContext(), authParams);
Task < AuthHuaweiId > authHuaweiIdTask = authService.silentSignIn();
authHuaweiIdTask.addOnSuccessListener(huaweiId - > {
......
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(Exception exception) {
......
}
});
}