撤消权限

时间:2020-07-24 11:11:01

标签: android google-signin google-fit

我一直在使用google fit,并且在撤消我以前被授予的权限时遇到问题。

这是我检查是否已授予权限的方法,如果没有则请求权限。

private val fitnessOptions = FitnessOptions.builder()
            .addDataType(DataType.TYPE_WEIGHT, FitnessOptions.ACCESS_READ)
            .addDataType(DataType.AGGREGATE_WEIGHT_SUMMARY, FitnessOptions.ACCESS_READ)
            .build()

val account : GoogleSignInAccount = GoogleSignIn.getAccountForExtension(activity, fitnessOptions)

if (!GoogleSignIn.hasPermissions(account, fitnessOptions)) {
    GoogleSignIn.requestPermissions(
    activity,
    GOOGLE_FIT_PERMISSIONS_REQUEST_CODE,
    account,
    fitnessOptions)
}

This页面讨论了使用ConfigClient.disableFit断开连接,但似乎不起作用。

This线程对问题的描述非常好,注释也与我尝试过的一些东西类似。解决方案不起作用,我得到与krokyze相同的错误。我可以使用GoogleSignInClient.signOut注销用户,但是如果我再次登录同一帐户,则仍然会授予权限。

通过GoogleFit应用程序断开我的应用程序的连接似乎可行,但是要求用户以这种方式进行操作并不是很好的UX。我也遇到了一些同步问题。我会断开该应用程序的连接,重新连接并获得许可,但是我的应用程序很长时间不会出现在GoogleFit的已连接应用程序列表中。

1 个答案:

答案 0 :(得分:0)

要撤消权限,可以使用以下方法

val options = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
    .addExtension(getFitnessOptions())
    .requestProfile()
    .build()
GoogleSignIn.getClient(this, options).revokeAccess()