Возможно ли считывать вес, как только будут доступны данные ???
Я использую этот способ:
GoogleSignIn.requestPermissions(activity,GOOGLE_FIT_PERMISSIONS_REQUEST_CODE,GoogleSignIn.getLastSignedInAccount(activity),
Fitness.SCOPE_ACTIVITY_READ,
Fitness.SCOPE_BODY_READ,
Fitness.SCOPE_LOCATION_READ,
Fitness.SCOPE_NUTRITION_READ);
Fitness.getSensorsClient(this, GoogleSignIn.getLastSignedInAccount(this))
.findDataSources(
new DataSourcesRequest.Builder()
.setDataTypes(
DataType.TYPE_WEIGHT,
DataType.TYPE_HEIGHT,
DataType.TYPE_STEP_COUNT_DELTA,
DataType.TYPE_STEP_COUNT_CUMULATIVE,
DataType.AGGREGATE_STEP_COUNT_DELTA,
DataType.TYPE_BASAL_METABOLIC_RATE,
DataType.TYPE_CALORIES_EXPENDED,
DataType.TYPE_CYCLING_PEDALING_CADENCE,
DataType.TYPE_CYCLING_PEDALING_CUMULATIVE,
DataType.TYPE_CYCLING_WHEEL_REVOLUTION,
DataType.TYPE_CYCLING_WHEEL_RPM,
DataType.TYPE_DISTANCE_CUMULATIVE,
DataType.TYPE_DISTANCE_DELTA,
DataType.TYPE_HEART_POINTS,
DataType.TYPE_HYDRATION,
DataType.TYPE_LOCATION_TRACK,
DataType.TYPE_NUTRITION,
DataType.TYPE_MOVE_MINUTES,
DataType.TYPE_SPEED,
DataType.TYPE_WORKOUT_EXERCISE
)
.setDataSourceTypes(DataSource.TYPE_RAW, DataSource.TYPE_DERIVED)
.build())
.addOnSuccessListener(
new OnSuccessListener<List<DataSource>>() {
@Override
public void onSuccess(List<DataSource> dataSources) {
for (DataSource dataSource : dataSources) {
Log.i(TAG, "Data source found: " + dataSource.toString());
Log.i(TAG, "Data Source type: " + dataSource.getDataType().getName());
НО, когда код трассировки видит источники данных, содержит только дельта-счет и накопленные источники данныхи НЕ содержит источник данных для веса
Я хочу сразу же прочитать любые изменения в fit data_type (я добавляю вес вручную в приложении Google Fit)
Обратите внимание, что я могу использовать HistoryApi, но это не очень хороший способ, потому что долженреализовать пул с использованием сервиса