android – 如何正确检索将数据插入Google Fit的应用程序的包名?

android – 如何正确检索将数据插入Google Fit的应用程序的包名?,第1张

概述我有以下代码用于从Google Fit检索用户活动列表: public void getActivitiesData(Date from, Date till) { DataReadRequest readRequest = new DataReadRequest.Builder() .aggregate(DataType.TYPE_ACTIVITY_SEGMENT, Da 我有以下代码用于从Google Fit检索用户活动列表:
public voID getActivitIEsData(Date from,Date till) {    DataReadRequest readRequest = new DataReadRequest.Builder()        .aggregate(DataType.TYPE_ACTIVITY_SEGMENT,DataType.AGGREGATE_ACTIVITY_SUMMARY)        .bucketByTime(1,TimeUnit.DAYS)        .setTimeRange(from.getTime(),till.getTime(),TimeUnit.MILliSECONDS)        .build();    fitness.HistoryAPI.readData(apiclient,readRequest).setResultCallback(new com.Google.androID.gms.common.API.ResultCallback<DataReadResult>() {        @OverrIDe        public voID onResult(DataReadResult dataReadResult) {            Status status = dataReadResult.getStatus();            if (status.isSuccess()) {                for (Bucket bucket : dataReadResult.getBuckets()) {                    if (!bucket.getDataSets().isEmpty()) {                        DataSet dataSet = bucket.getDataSets().get(0);                        String sourceAppPackagename = getSourceAppPackagenameFromDataSet(dataSet);                        for (DataPoint dp : dataSet.getDataPoints()) {                            for (FIEld fIEld : dp.getDataType().getFIElds()) {                                String fIEldname = fIEld.getname();                                if (fIEldname != null && fIEldname.equals("activity")) {                                    String type = fitnessActivitIEs.getValue(dp);                                    Date from = new Date(dp.getStartTime(TimeUnit.MILliSECONDS));                                    Date till = new Date(dp.getEndTime(TimeUnit.MILliSECONDS));                                    // store retrIEved values to the data object,omitted                                }                            }                        }                    }                }            }        }    });}private static String getSourceAppPackagenameFromDataSet(DataSet dataSet) {    String result = null;    if (dataSet.getDataSource() != null) {        result = dataSet.getDataSource().getAppPackagename();    }    return result;}

要将活动插入Google Fit,我使用了Google健身应用和Runkeeper(目前,这些应用似乎只是与Fit集成的应用).

我的代码按预期检索这些活动,但是,对于每个活动,我的getSourceAppPackagenameFromDataSet()方法返回“com.Google.androID.gms”作为包名.根据Data Attribution section in Google Fit documentation,我希望该方法返回Runkeeper或Google Fit的包名,但这不会发生.

我做了一些可怕的错误,或者这是Google Fit中的错误?

解决方法 DataPoint.getoriginalDataSource().getAppPackagename()将完成这一 *** 作.它为我的Withings比例返回com.withings.wiscale2,而DataSet.getDataSource().getAppPackagename()总是返回com.Google.androID.gms.

这里有一个类似的问题:DataSource.getAppPackageName() always returns “com.google.android.gms” in Google Fit

总结

以上是内存溢出为你收集整理的android – 如何正确检索将数据插入Google Fit的应用程序的包名?全部内容,希望文章能够帮你解决android – 如何正确检索将数据插入Google Fit的应用程序的包名?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1135355.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存