Android + Google Fit数据上传:错误5002-DataType的名称与软件包名称不匹配

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android + Google Fit数据上传:错误5002-DataType的名称与软件包名称不匹配相关的知识,希望对你有一定的参考价值。

在应用程序中,我们将用户活动数据像这样上载到Google Fit:

   Fitness.getSessionsClient(context, GoogleSignIn.getLastSignedInAccount(context))
                            .insertSession(((SessionInsertRequest) object))
                            .addOnSuccessListener(new OnSuccessListener<Void>() 
                                @Override
                                public void onSuccess(Void aVoid) 
                                    // At this point, the session has been inserted and can be read.
                                    if (BuildConfig.DEBUG) 
                                        Log.i(TAG, "Session insert was successful!");
                                    
                                     //more success handling
                                
                            )
                            .addOnFailureListener(new OnFailureListener() 
                                @Override
                                public void onFailure(@NonNull Exception e) 

                                    if (BuildConfig.DEBUG) 
                                        Log.w(TAG, "There was a problem inserting the session: " + e.toString()+ "\n"+ e.getLocalizedMessage());
                                    
                                    //more error handling
                                    
                                
                            );

直到大约2019年9月4日,它的工作状况都很好。

然后,Google在创建SessionInsertRequest时似乎已更改了某些内容,从而导致以下警告:>

App com.foo.bar无法访问请求中的数据类型

并且在onFailureListener(...)中,我们收到以下消息:

插入会话时出现问题:com.google.android.gms.common.api.ApiException:5002:DataType的名称与包名称不匹配。

数据类型未更改。当要求用户授予上传权限时,会要求他们:

   private FitnessOptions getFitnessSignInOptions(OAuthType type) 

    switch (type) 

        case Activity:
            return FitnessOptions.builder()
                    .addDataType(DataType.TYPE_LOCATION_SAMPLE, FitnessOptions.ACCESS_WRITE)
                    .addDataType(DataType.TYPE_CALORIES_EXPENDED, FitnessOptions.ACCESS_WRITE)
                    .build();
    

并在像这样的数据源中创建:

 DataSource  locationDataSource = new DataSource.Builder()
            .setAppPackageName(packageName)
            .setDataType(DataType.TYPE_LOCATION_SAMPLE)
            .setName(uniqueIdentifier + "-locations")
            .setType(DataSource.TYPE_RAW)
            .build();

类似于Google sample显示。

我们忽略设置数据源的名称还是使用setName(packageName)都没有关系。同样使用setStreamName(packageName)不能解决问题。其他人有这个问题或类似问题吗?

谢谢

罗伯特

在应用程序中,我们将用户活动数据上传到Google Fit,如下所示:Fitness.getSessionsClient(context,GoogleSignIn.getLastSignedInAccount(context)).insertSession((((...

答案
None

以上是关于Android + Google Fit数据上传:错误5002-DataType的名称与软件包名称不匹配的主要内容,如果未能解决你的问题,请参考以下文章

如何在Android模拟器中安装Google Fit应用?

使用 Google Fit 的 Android 应用程序中的 OAuth 同意屏幕为空白

使用 Google fit 从配对应用程序中读取 Wear os 手表的心率

使用 Google Fit api 时的 Google Oauth 2.0 RESULT_CANCELED

使用 Google Fit api 时的 Google Oauth 2.0 RESULT_CANCELED

为啥 SimpleImputer 的 fit_transform 不适用于 google colab 中的数据框?