我正在遵循Google的以下文档:Google Fit
我不理解第5步。我不是Android开发人员,也不知道代码在哪里。 Step 5
例如,它说:您必须先连接到以下一个或多个以下API客户端(它们是Google Play服务的一部分,然后才能从Google Fit API调用方法:
现在,我尝试连接第一个SensorsClient
但是我不知道代码在哪里,哪个文件?我是一名开发人员,在步骤5中需要帮助。
build.grandle
dependencies {
implementation 'com.google.android.gms:play-services-fitness:18.0.0'
implementation 'com.google.android.gms:play-services-auth:17.0.0'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}
您应该使用Flutter插件fitKit来读取健康和健身数据。在iOS上包装HealthKit,在Android上包装GoogleFit。
import 'package:fit_kit/fit_kit.dart';
void read() async {
final results = await FitKit.read(
DataType.HEART_RATE,
dateFrom: DateTime.now().subtract(Duration(days: 5)),
dateTo: DateTime.now(),
);
}
void readLast() async {
final result = await FitKit.readLast(DataType.HEIGHT);
}
void readAll() async {
if (await FitKit.requestPermissions(DataType.values)) {
for (DataType type in DataType.values) {
final results = await FitKit.read(
type,
dateFrom: DateTime.now().subtract(Duration(days: 5)),
dateTo: DateTime.now(),
);
}
}
}
如果您正在编写特定于平台的自定义代码
在您可以从Google Fit API调用方法之前,您必须连接到以下一个或多个以下API客户端,它们是Google Play服务的一部分:
您必须连接以上其中之一。
DataReadRequest readRequest = new DataReadRequest.Builder()
.aggregate(DataType.TYPE_STEP_COUNT_DELTA, DataType.AGGREGATE_STEP_COUNT_DELTA)
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.bucketByTime(1, TimeUnit.DAYS)
.enableServerQueries()
.build();
// History Client
Fitness.getHistoryClient(this, GoogleSignIn.getLastSignedInAccount(this))
.readData(readRequest)
.addOnSuccessListener(new OnSuccessListener<DataReadResponse>() {
@Override
public void onSuccess(DataReadResponse dataReadResponse) {
Log.d(TAG, "onSuccess()");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG, "onFailure()", e);
}
})
.addOnCompleteListener(new OnCompleteListener<DataReadResponse>() {
@Override
public void onComplete(@NonNull Task<DataReadResponse> task) {
Log.d(TAG, "onComplete()");
}
});