Я пытаюсь получить количество шагов от google в приложении для Android. После того, как вы выбрали учетную запись google, приложение успешно вызывается до onConnected()
. Я сконфигурировал Google API Console с правильным шрифтом SHA1 и именем пакета. Таким образом, с Console не может быть никаких проблем.Google Fit не дает количество шагов
Однако он никогда не попадает в onDataPoint()
[это использовалось для работы до].
Я вставляю код после onConnected
здесь.
DataSourcesRequest dataSourceRequest = new DataSourcesRequest.Builder()
.setDataTypes(DataType.TYPE_STEP_COUNT_CUMULATIVE)
.setDataSourceTypes(DataSource.TYPE_RAW)
.build();
ResultCallback<DataSourcesResult> dataSourcesResultCallback = new ResultCallback<DataSourcesResult>() {
@Override
public void onResult(DataSourcesResult dataSourcesResult) {
for (DataSource dataSource : dataSourcesResult.getDataSources()) {
if (DataType.TYPE_STEP_COUNT_CUMULATIVE.equals(dataSource.getDataType())) {
registerFitnessDataListener(dataSource, DataType.TYPE_STEP_COUNT_CUMULATIVE);
}
}
}
};
Fitness.SensorsApi.findDataSources(mApiClient, dataSourceRequest)
.setResultCallback(dataSourcesResultCallback);
, а затем
private void registerFitnessDataListener(DataSource dataSource, DataType dataType) {
Log.e("GoogleFit", "registerFitnessDataListener");
SensorRequest request = new SensorRequest.Builder()
.setDataSource(dataSource)
.setDataType(dataType)
.setSamplingRate(3, TimeUnit.SECONDS)
.build();
Fitness.SensorsApi.add(mApiClient, request, this)
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(Status status) {
if (status.isSuccess()) {
Log.e("GoogleFit", "SensorApi successfully added");
}
}
});
}
Может кто-то помочь мне с причиной, почему он не получает удар в onDataPoint()
метод ??
Установлено, что мои данныеSourcesResultCallback возвращаются с DataSourceResult {status = Status {statusCode = SUCCESS, resolution = null}, data Sets = []}. Но он никогда не переходит в for (DataSource dataSource: dataSourcesResult.getDataSources()) {} для цикла – Dchaser88
Вы пытались помещать журналы в свой 'onResult (DataSourcesResult dataSourcesResult)'? Смотрите, действительно ли он туда попал? Или проверьте количество 'dataSourcesResult.getDataSources()'? –
привет, спасибо за ответ. Я решил это, используя DataSource.TYPE_DERIVED при построении DataSourcesRequest. – Dchaser88