Google Fit oauth 屏幕出现不一致的情况是什么?

问题描述

我希望我的应用为 Google Fit 授权显示一个屏幕。有时只出现第一张图像(如下所示)。大多数情况下,它会出现 9 个单独的屏幕,需要单独授予每个权限(图 2),然后在单独授予所有权限后,会弹出一个最终屏幕,要求再次授予所有权限(图 3)!理想情况下,我想弄清楚如何只显示一个屏幕,而不是屏幕 2 和 3。我见过其他应用程序专门显示一个屏幕,所以我相信这是可能的。这是我当前使用的代码

 fun authorize(context: Context) {
    val fitnessOptions = getfitnessOptions()
    if (!GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(FITIVpulse.context),fitnessOptions)) {
        GoogleSignIn.requestPermissions(
                context as Activity,// your activity
                GOOGLE_FIT_PERMISSIONS_REQUEST_CODE,GoogleSignIn.getAccountForExtension(context,fitnessOptions),fitnessOptions)
    }
    appSettings.askedForGoogleFitPermissions = true
}
private fun getfitnessOptions():fitnessOptions{
    return fitnessOptions.builder()
       .addDataType(DataType.AGGREGATE_HEART_RATE_SUMMARY,fitnessOptions.ACCESS_READ)
        .addDataType(DataType.TYPE_LOCATION_SAMPLE,fitnessOptions.ACCESS_WRITE)
        .addDataType(DataType.TYPE_CALORIES_EXPENDED,fitnessOptions.ACCESS_READ)
        .addDataType(DataType.TYPE_CALORIES_EXPENDED,fitnessOptions.ACCESS_WRITE)
        .addDataType(DataType.TYPE_HEART_POINTS,fitnessOptions.ACCESS_READ)
        .addDataType(DataType.TYPE_HEART_RATE_BPM,fitnessOptions.ACCESS_WRITE)
        .addDataType(DataType.TYPE_MOVE_MINUTES,fitnessOptions.ACCESS_READ)
        .addDataType(DataType.TYPE_WEIGHT,fitnessOptions.ACCESS_WRITE)
        .addDataType(DataType.TYPE_STEP_COUNT_DELTA,fitnessOptions.ACCESS_READ)
        .addDataType(HealthDataTypes.TYPE_BLOOD_PRESSURE,fitnessOptions.ACCESS_READ)
        .addDataType(DataType.TYPE_disTANCE_DELTA,fitnessOptions.ACCESS_READ)
        .addDataType(DataType.AGGREGATE_ACTIVITY_SUMMARY,fitnessOptions.ACCESS_READ)
            .build()


}

Google Fit Auth 1 Screen

大多数时候是这两张图片出现。单独授予所有权限,然后要求我确认我的选择。

enter image description here

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)