0

这是我使用 google fit API 插入高度的代码。物体高度=160.0F;

 DataSource dataSource = new DataSource.Builder()
            .setAppPackageName(LoginActivity.this)
            .setDataType(DataType.TYPE_HEIGHT)
            .setType(DataSource.TYPE_RAW)
            .build();

    DataSet heightDataSet = new DataSet(dataSource);
    DataPoint dataPoint = heightDataSet.createDataPoint().setTimeInterval(Helper.getStartTimeOfDay(Calendar.getInstance().getTimeInMillis()),
            Helper.getNow(), TimeUnit.MILLISECONDS);
    if (height instanceof Integer) {
        dataPoint.getValue(Field.FIELD_HEIGHT).getFormat();

        dataPoint = dataPoint.setIntValues((Integer) height);
    } else {
        dataPoint = dataPoint.setFloatValues((Float) height);
    }


    heightDataSet.add(dataPoint);
    Fitness.HistoryApi.insertData(App.gClient, heightDataSet).setResultCallback(new ResolvingResultCallbacks<Status>(LoginActivity.this, 0) {
        @Override
        public void onSuccess(Status status) {

        }

        @Override
        public void onUnresolvableFailure(Status status) {

        }
    });

它给出了错误java.lang.IllegalArgumentException: Field out of range at line heightDataSet.add(dataPoint); 请帮忙。

4

2 回答 2

1

高度以米为单位,所以我认为您的意思是使用 1.6f

Fit 通常使用 SI 单位,例如米、公斤、米/秒等。

于 2016-02-26T09:38:54.767 回答
0

当我使用TimeUnit.HOURS而不是TimeUnit.MILLISECONDS.

于 2016-08-20T05:22:22.873 回答