android - 如何撤销我的应用程序从用户的 google gmail AccountManager.getAuthToken(

标签 android oauth accountmanager

使用 Eclipse 创建了一个测试应用程序,以从我设备上的一个 Google 电子邮件帐户获取 authToken

执行此操作会提示我允许访问对话框,我在其中按允许访问:

accountManager.getAuthToken(account,"oauth2:https://www.googleapis.com/auth/userinfo.profile", false, new GetAuthTokenCallback(), null);

我想创建一个适用于 API8 及更高版本的选择器对话框,用户可以在其中进行选择 他允许我访问什么谷歌帐户。为此,我必须撤销再次查看屏幕的权限。

我是否应该在此页面上看到我的测试应用程序?
Authorized Access to your Google Account

我正在寻找一种方法来撤销权限,但没有用..
唯一可行的是创建一个新的应用程序项目。

2013 年更新
使用 Google Play 服务 GCM,一切正常

最佳答案

关于“Authorized Access to your Google Account”页面,您不会在那里看到您的应用,因为此权限是存储在手机数据库中的设备本地权限。

似乎不可能以简单的方式撤销此权限。我已经找到了几种能够再次触发对话的方法,但没有一种是理想的。在其中一些解决方案中,显示的对话框并不完全相同,但它可能足够接近测试目的,具体取决于您要执行的操作:

内部 getAuthToken方法使用应用程序的 UID 跟踪是否已授予访问权限。因此,如果您能够以某种方式强制 Android 为您的应用程序提供一个新的 UID 或强制它清除给定授权的数据库,则应该再次显示该对话框。以下是一些其他人说对他们有用但对我不起作用的解决方案(也许这取决于您使用的是哪种手机?):

作为边注 revoke permissions to access google auth tokens提到有internal Android methods用于撤销访问权限,但这些无法通过公共(public) API 访问。

关于android - 如何撤销我的应用程序从用户的 google gmail AccountManager.getAuthToken(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13222960/

相关文章:

iPhone/iOS Facebook SDK - 您可以在应用程序中登录并保留登录凭据吗?

android - 如何从设置 UI 中隐藏我的客户客户经理

使用 AWS Cognito、Google+ OAuth 和 AccountManager 的 Android 应用程序

多个 OAuth 2.0 的 Javascript 库

Eclipse 中的 Android,合并/包含嵌套的 XML 非布局资源

Android ListView 在 Item 长按释放上运行一个事件

Android - 如何监听蓝牙暂停/播放

java - NoClassDefFoundError:com/google/api/client/auth/oauth2/Credential

android - 用于登录/注册的 AccountManager 控制流程

android - 用户打字时如何避免 EditText 上的多个触发器?