1

介绍:

所以我accountManager用来获取我需要的令牌:

am.getAuthToken(account,
    scope,
    null,
    this,
    new OnTokenAcquired(),
    new Handler(new OnError()));

当我使用“查看您的任务”作为范围时(就像这里描述的那样 , Android 会显示一个权限请求并告诉我的应用程序正在请求“查看您的任务”。

我需要使用“ oauth2: https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile ”作为范围。当我这样做时,Android不会将这些 URL 替换为我在此处找到的人类可读的描述。

问题:

  1. 无论如何强制Androidscope用谷歌定义的自定义描述或描述替换?
  2. 无论如何要声明一个自定义permission并在安装过程中使用它,manifest以便Android会请求用户的许可(例如“查看您的电子邮件地址”和“查看有关您的帐户的基本信息”)?
  3. 有什么方法可以实现我想要实现的目标吗?

我想要达到的目标:

我只想请求我需要的权限,以便用户能够了解我请求的权限类型。

谢谢。

4

1 回答 1

0

无论如何强制Android用谷歌定义的自定义描述或描述替换范围?

不,不可能使用自定义描述。当您在低于 4 的 Android 版本(我认为,我不确定 3)上使用 Oauth2 范围时,将向用户显示确切的范围,而不是更用户友好的内容。在 Android 4 及更高版本上,您将获得一个描述,因此该描述似乎是 Android 本身的一部分。

Is there any way achieve what I'm trying to achieve?

您可以尝试使用 Google play 的 GoogleAuthUtil 而不是帐户管理器,因为它可以提供更好的用户体验。有关使用帐户管理器和 GoogleAuthUtil 之间的比较,请参阅:In a nutshell what's the difference from using OAuth2 request getAuthToken and getToken

于 2013-07-03T07:10:22.413 回答