Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从GoogleFit接口获取空值-心率聚合

从GoogleFit接口获取空值-心率聚合
EN

Stack Overflow用户
提问于 2020-01-15 04:30:52
回答 2查看 100关注 0票数 0
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        long startDateInMS = dateUTCToMillisecs(startDate);
        long endDateInMS = dateUTCToMillisecs(endDate);

        DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
        dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));

        WritableArray results = Arguments.createArray();
        DataSource DS = new DataSource.Builder()
                .setDataType(DataType.TYPE_HEART_RATE_BPM)
                .setType(DataSource.TYPE_DERIVED)
                .setStreamName("heart_rate")
                .setAppPackageName("com.google.android.gms")
                .build();

        final DataReadRequest req = new DataReadRequest.Builder()
                .aggregate(DS, DataType.AGGREGATE_HEART_RATE_SUMMARY)
                .bucketByTime(1, TimeUnit.DAYS)
                .setTimeRange(startDateInMS, endDateInMS, TimeUnit.MILLISECONDS)
                .build();


        GoogleSignInAccount googleSignInAccount = GoogleSignIn.getLastSignedInAccount(context);

        Fitness.getHistoryClient(context, googleSignInAccount).readData(req).addOnSuccessListener(new OnSuccessListener<DataReadResponse>() {
            @Override
            public void onSuccess(DataReadResponse dataReadResponse) {

            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
            }
        }).addOnCompleteListener(new OnCompleteListener<DataReadResponse>() {
            @Override
            public void onComplete(@NonNull Task<DataReadResponse> task) {

            }
        });

查询正在成功执行,但即使我在GoogleFit应用程序中有心率值,aggregated_heart_data数组也是空的

**我开启了BODY_SENSORS权限和位置权限**

EN

回答 2

Stack Overflow用户

发布于 2020-01-15 21:31:10

看起来您设置的包名称不正确。它是数据提供程序包名称。从您的数据请求中删除包名。

您的数据请求源应该如下所示

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DataSource DS = new DataSource.Builder()
            .setDataType(DataType.TYPE_HEART_RATE_BPM)
            .setType(DataSource.TYPE_DERIVED)
            .build();
票数 0
EN

Stack Overflow用户

发布于 2020-09-07 22:10:01

我终于找到了一种聚合心率数据的方法(它可以在我的手机上运行,但不能在Android Studio的Emulator上运行,所以请记住这一点。首先添加心率和聚合心率的数据类型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FitnessOptions fitnessOptions =
    FitnessOptions.builder()
        .addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_WRITE)
        .addDataType(DataType.AGGREGATE_HEART_RATE_SUMMARY,FitnessOptions.ACCESS_WRITE)
        .build();

然后使FitnessQuery函数如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private fun queryFitnessData2(): DataReadRequest {
        // [START build_read_data_request]
        // Setting a start and end date using a range of 1 week before this moment.
        val calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
        val now = Date()

                calendar.time = now
        val endTime = calendar.timeInMillis
        calendar.add(Calendar.WEEK_OF_YEAR, -1)
        val startTime = calendar.timeInMillis

        Log.i(TAG, "Range Start: ${dateFormat.format(startTime)}")
        Log.i(TAG, "Range End: ${dateFormat.format(endTime)}")

        return DataReadRequest.Builder()

                 .enableServerQueries()
                .bucketByTime(1, TimeUnit.DAYS)
                .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
                .aggregate(DataType.TYPE_HEART_RATE_BPM, DataType.AGGREGATE_HEART_RATE_SUMMARY)
                .build();
}

最后,将数据集转储到存储桶中,其中每个存储桶对应一天:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private fun printData(dataReadResult: DataReadResponse) {
        // [START parse_read_data_result]
        // If the DataReadRequest object specified aggregated data, dataReadResult will be returned
        // as buckets containing DataSets, instead of just DataSets.
        if (dataReadResult.buckets.isNotEmpty()) {
            Log.i(TAG, "Number of returned buckets of DataSets is: " + dataReadResult.buckets.size)
            for (i in 0 until dataReadResult.buckets.size) {

                for (j in 0 until dataReadResult.buckets[i].dataSets.size) {
                    dumpDataSet(dataReadResult.buckets[i].dataSets[j]);
                }
            }
        } else if (dataReadResult.dataSets.isNotEmpty()) {
            Log.i(TAG, "Number of returned DataSets is: " + dataReadResult.dataSets.size)
            dataReadResult.dataSets.forEach { dumpDataSet(it) }
        }
        // [END parse_read_data_result]
    }

    // [START parse_dataset]
private fun dumpDataSet(dataSet: DataSet) {
    Log.i(TAG, "Data returned for Data type: ${dataSet.dataType.name}")
    val dateFormat: DateFormat = getTimeInstance()
    for (dp:DataPoint in dataSet.dataPoints) {
        Log.i(TAG, "\tStart: " + dateFormat.format(dp.getStartTime(TimeUnit.MILLISECONDS)));
        Log.i(TAG, "\tEnd: " + dateFormat.format(dp.getEndTime(TimeUnit.MILLISECONDS)));
        Log.i(TAG, "\tType: " + dp.dataType.name);
        Log.i(TAG, "TEST")
        for (field in dp.dataType.fields) {
            Log.i(TAG, "TEST4")
            val fieldValue = "Field name: " + field.name.toString() + ", value: " + dp.getValue(field).asFloat();
            Log.i(TAG, fieldValue)
        }
    }
}

希望过了这么久还能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59745172

复制
相关文章
基于uFUN开发板的心率计(二)动态阈值算法获取心率值
上一篇文章:基于uFUN开发板的心率计(一)DMA方式获取传感器数据,介绍了如何获取PulseSensor心率传感器的电压值,并对硬件电路进行了计算分析。心率计,重要的是要获取到心率值,本篇文章将介绍一种采样数据处理算法——动态阈值算法,来获取心率值,这种算法来自于一位网友:玩的就是心跳 —— 使用 PulseSensor 脉搏传感器测量心率(http://www.shaoguoji.cn/2017/06/29/use-pulsesensor-with-stm32/),本文部分内容摘自这篇文章。
单片机点灯小能手
2020/07/16
1.4K0
Redhat6中获取LANG值为空
首先来描述一下我遇到的问题:如下图所示在我们产品中,服务脚本放置在目录/etc/init.d中,在用命令 "service xxx start" 后,脚本中启动应用程序ice_main,ice_main进程中使用命令 "locale" 来获取当前所使用的语言。但是获取的LANG的值为空......
河边一枝柳
2021/08/06
4K0
conn.setRequestProperty_session.getattribute获取的值为空
项目中碰到调用其他厂家的接口,厂家不仅提供了接口文档还提供了调用基类,但是使用厂家提供的基类调用其服务却失败。看了源码之后发现是connection.setRequestProperty("host","xxxx")没有设置成功,导致厂家不能识别到host的值。
全栈程序员站长
2022/11/04
2K0
[深入解析C#] 可空值类型
Tony Hoare于1965年在Algol语言中首次引入了null引用的概念,后来他把这项举措称为“十亿美金的过失”。无数开发人员饱受NullReferenceException(.NET)、NullPointerException(Java)等的折磨。由于此类问题的普遍性,Stack Overflow上有大量与之相关的典型问题。既然可空特性如此声名狼藉,为何C# 2以及.NET 2.0要引入可空值类型呢?
科控物联
2022/03/29
2.3K0
python 空值判断
在Python中,None、空列表[]、空字典{}、空元组()、0等一系列代表空和无的对象会被转换成False。除此之外的其它对象都会被转化成True。python变量初始化为空值分别是: 数值 digital_value = 0 字符串 str_value = "" 列表 list_value = [] 字典 ditc_value = {} 元组 tuple_value = () Python中关于空类型的判断使用的内建函数any(), any(iterable) Return True if any element of the iterable is true. If the iterable is empty, return False. Equivalent to:
用户5760343
2022/05/14
4.4K0
fastjson输出空值
在fastjson中,缺省是不输出空值的。无论Map中的null和对象属性中的null,序列化的时候都会被忽略不输出,这样会减少产生文本的大小。但如果需要输出空值怎么做呢?
johnhuster的分享
2022/03/28
1.5K0
2020-11-10:golang中的接口,类型不空,值为空,如何判断是nil?
reflect.ValueOf(接口变量).IsNil(),用这个即可判断。对于值类型,会panic。两种方法如下:
福大大架构师每日一题
2020/11/10
4.9K0
2020-11-10:golang中的接口,类型不空,值为空,如何判断是nil?
springboot自动判定空值
搭建springboot项目,我们都是采用的Restful接口,那么问题来了,当前端调用接口或者是其他项目调用时,我们不能单一靠调用方来控制参数的准确性,自己也要对一些非空的 值进行判定。
IT小马哥
2021/03/03
3.9K0
jquery获取a标签中href值为空的连接,并提示信息
在未上线的项目中,尤其前端开发过程中,挺频繁使用超链接,但是超链接点击之后会跳转当前的首页!(很烦心).
十月梦想
2018/08/29
6.6K0
关于获取EditText编辑框中的值为空的问题
类似于这种注册页面的程序 protected void onCreate(Bundle savedInstanceState) {             super.onCreate(savedInstanceState);             setContentView(R.layout.regis_ui);  EditText tv =  (EditText) findViewById(R.id.na);             name = tv.getText().toString(
geekfly
2022/05/06
3K0
dataframe填充缺失值_pandas填充空值
将其Nan全部填充为0,这时再打印的话会发现根本未填充,这是因为没有加上参数inplace参数。
全栈程序员站长
2022/09/22
2.8K0
使用GuzzleHttp从HTTP调用获取cookie的值
- 发送登录请求以后想看Cookies的值,文档只提供直接使用Cookie没有查看值的介绍,下面给大家讲一下实现代码。 实现代码
axiomxs
2021/11/26
4.5K0
前端中的接口聚合
详见:https://github.com/LuckyWinty/ToolLibrary/tree/master/src/RequestCombo
winty
2019/12/21
1.5K0
ECG 心率计算
import java.util.LinkedList; import java.util.List; public class EcgUtils { /** * 获取频率 * * @param data 所有的数据 20秒的数据 * @param hz 采集的频率 * @param max_num 波峰的代表值 * @param min_num 波谷的代表值 * @param check
Xiaolei123
2021/03/18
5540
C#可空值类型
1. 可空类型修饰符(?)   引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。   例如:string str=null; 是正确的,int i=null; 编译器就会报错。
_一级菜鸟
2021/08/10
1.4K0
Elasticsearch 空值处理实战指南
Accepts a string value which is substituted for any explicit null values. Defaults to null, which means the field is treated as missing.
铭毅天下
2020/11/19
4K0
Elasticsearch 空值处理实战指南
空值合并运算符(??)
使用空值合并运算符为常量提供默认值,保证常量不为 null 或者 undefined。
用户9914333
2022/12/14
1.4K0
空值合并运算符(??)
根据key 从yml 获取具体值的工具类
这里写目录标题 1 工具类 1 工具类 public class YamlUtil { // public static final YamlUtil instance = new YamlUtil(); private static Map<String, Map<String, Object>> ymlMap = new HashMap<>(); static { Yaml yaml = new Yaml(); try (InputStrea
一写代码就开心
2022/08/16
2.7K0
从获取URL参数到JS URL()和URLSearchParams() 接口
获取URL参数有有2中,一直是split 切片,一种是正则表达式匹配。这个是传统方法。
周陆军博客
2023/05/07
5.3K0
点击加载更多

相似问题

如何获取心率Googlefit?

14

如何从Google历史中获取心率值?

14

如何从心率中获取心率变异性

115

从Microsoft频段获取心率

12

从聚合查询获取空响应

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文