HealthServices
。我遵循了Android Developers网站的therthis向导。我在我的ACTIVITY_RECOGNITION
AndroidManifest
权限,并在我的Java代码中要求它。问题是,当我尝试获取支持功能的列表(数据类型)时,我得到的集合仅包含一个
DataType
,心率。我在佩戴OS仿真器(API 34)和物理磨损设备(Galaxy Watch 5 Pro)上测试了测试。在模拟器进行测试时,我更新到了最新版本的Android Studio,该工作室具有佩戴OS设备的Wear Health Services选项。我启用了所有可用功能,但仍然没有任何更改。
可能导致问题?这甚至是最后一天获得步骤数的正确方法吗?
public void setupMeasureClient() {
measureClient = HealthServices.getClient(context).getMeasureClient();
}
public void loadSupportedDataTypes() {
if (measureClient == null) return;
if (!permissionHandler.hasPermission(ACTIVITY_RECOGNITION_PERMISSION)) return;
try {
ListenableFuture<MeasureCapabilities> future = measureClient.getCapabilitiesAsync();
future.addListener(() -> {
try {
MeasureCapabilities measureCapabilities = future.get();
Set<DeltaDataType<?, ?>> dataTypes = measureCapabilities.getSupportedDataTypesMeasure();
System.out.println("[HealthServices] Available data types:");
for (final DeltaDataType<?, ?> dataType: dataTypes) {
System.out.println("[HealthServices] Data type: " + dataType.getName());
}
setDataTypes(dataTypes);
} catch (Exception e) {
System.err.println("[HealthServices] Error occurred while resolving future: " + e.getMessage());
}
}, Executors.newSingleThreadExecutor());
} catch (Exception e) {
System.out.println("[HealthServices] Couldn't get list of capabilities: " + e.getMessage());
}
}
MeasureClient
PassiveMonitoringClient