【问题标题】:Revoke permissions撤销权限
【发布时间】:2020-07-24 11:11:01
【问题描述】:

我一直在玩 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 线程很好地描述了这个问题,并且 cmets 也类似于我尝试过的一些东西。该解决方案不起作用,我得到与 krokyze 相同的错误。我可以使用 GoogleSignInClient.signOut 注销用户,但如果我再次登录同一个帐户,仍然会授予权限。

通过 GoogleFit 应用断开我的应用似乎可行,但要求用户这样做并不是很好的用户体验。我也遇到了一些同步问题。我会断开应用程序,重新连接并获得权限,但我的应用程序很长一段时间都不会出现在 GoogleFit 的已连接应用程序列表中。

【问题讨论】:

  • 您找到解决方案了吗?我遇到了完全相同的问题。

标签: android google-signin google-fit


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-03-03
    • 2016-06-05
    • 2016-02-02
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多