gpt4 book ai didi

android - 使用弃用方法的 GoogleAccountCredential.RequestHandler 解决方法

转载 作者:搜寻专家 更新时间:2023-11-01 09:40:43 24 4
gpt4 key购买 nike

我正在为我的应用程序添加 Google Drive 支持,使用 v3 REST Api,如下所述:https://developers.google.com/drive/v3/web/quickstart/android

Gmail API 中出现完全相同的问题:https://developers.google.com/gmail/api/quickstart/android

我正在按照此处所述使用 GoogleAccountCredential。它通过我的 gradle 包含在内:

compile('com.google.api-client:google-api-client-android:1.22.0') {
exclude group: 'org.apache.httpcomponents'
}

但是,它的嵌套类 GoogleAccountCredential.RequestHandler 存在问题在方法 handleResponse 中调用 GoogleAuthUtil.invalidateToken(context, token);它被标记为已弃用,因为它需要 MANAGE_ACCOUNTS 和 USE_CREDENTIALS 权限,如下所述: GoogleAuthUtil.invalidateToken

当我使用 Google 网络界面断开应用程序与云端硬盘的连接并尝试使用上述快速入门示例重新进行身份验证时,会出现这种情况。然后抛出 java.lang.SecurityException: caller uid lacks any of android.permission.MANAGE_ACCOUNTS,android.permission.USE_CREDENTIALS(正如预期的那样)。

我当然可以将这些权限添加到我的应用程序中,但我宁愿不这样做。 Android Studio SDK 管理器没有显示相关库的更新。

除了不使用 PlayServices 而是直接使用 GoogleAuthUtil 之外,还有其他解决方法吗?

最佳答案

经过一些试验,我能够通过子类化 GoogleAccountCredential 来解决这个问题,并且在它的“public void initialize(HttpRequest request)”中使用 RequestHandler,它是默认实现的副本,只是它调用 clearToken 而不是 invalidateToken。 clearToken 可能会抛出一些必须捕获并适当处理的异常。

关于android - 使用弃用方法的 GoogleAccountCredential.RequestHandler 解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40039323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com