gpt4 book ai didi

android - Google Play 服务 - 强制显示权限窗口(授予访问权限)

转载 作者:行者123 更新时间:2023-11-29 17:58:03 24 4
gpt4 key购买 nike

我在我的应用程序中使用 Google Play 服务,但最近我发现了一些奇怪的东西,我不知道如何处理它。

如果您使用的是 Google Play 服务,那么您第一次知道,在您生成 token 之前,您需要授予您的应用使用所选 API 的权限(授予访问权限)。

Google is asking for permission and showing this window (sorry for non-english screenshot)

之后,您的应用将在此处可见:https://accounts.google.com/IssuedAuthSubTokens

Your app should be now on the list

我的应用程序就在那里。一切正常。我想从头开始测试它,我撤销了对我的应用程序的访问权限,然后……它停止工作了。在撤销对我的应用程序的访问权限后,我无法强制 Google Play 服务显示此窗口。我没有 Google API 的权限,但 Google 应该会显示权限窗口让我重新添加它。

有没有办法再次显示这个窗口?

我正在使用 GoogleAccountCredential.usingOAuth2 函数来获取用户 token 和数据(除了 UserRecoverableAuthIOException、startActivityForResult(e.getIntent()、REQUEST_AUTHORIZATION) ... 等所有异常)。

据我了解,GoogleAccountCredential 使用 Google Play 服务来管理 OAuth2 流程,您只需提供用户名即可。撤销访问权限后,它不起作用。

最佳答案

使用 Google Play 服务:

http://developer.android.com/reference/com/google/android/gms/auth/GoogleAuthUtil.html

添加https://www.googleapis.com/auth/userinfo.profile到你的范围。

例子:

String scope="oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"

final String token = GoogleAuthUtil.getToken(context, "xxxx@gmail.com", scope);

或“蛮力”

Intent res = new Intent();
res.addCategory("account:xxxx@gmail.com");
res.addCategory("scope:oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile");
res.putExtra("service", "oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile");
Bundle extra= new Bundle();
extra.putString("androidPackageName","com.your.package");
res.putExtra("callerExtras",extra);
res.putExtra("androidPackageName","com.your.package");
res.putExtra("authAccount","xxxx@gmail.com");

String mPackage = "com.google.android.gms";
String mClass = "com.google.android.gms.auth.TokenActivity";
res.setComponent(new ComponentName(mPackage,mClass));
startActivityForResult(res,100);

现在,当您在此处撤销访问权限时 https://accounts.google.com/IssuedAuthSubTokens应用程序会在设备中再次显示许可窗口。

关于android - Google Play 服务 - 强制显示权限窗口(授予访问权限),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17895705/

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