java - 带有 Google Play 服务登录的 Libgdx
问题描述
所以我不太确定如何使用 libgdx 处理 Google Play 服务登录,我的意思是我想在应用程序开始时要求用户登录。AndroidLauncher
所以我的第一次尝试是在这样的onCreate
方法中实现登录
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
startSignInIntent();
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
initialize(new MainGame(this), config);
}
起初它看起来工作正常,第一次打开应用程序它要求我登录,然后在下一个应用程序打开时没有。但是这里的问题是,initialize
无论是否startSignInIntent
成功都会调用该方法,并且我想让它initialize
仅在登录成功时调用,如果失败则可能关闭应用程序,并让用户再次打开我的应用程序再试一次。我试图调用initialize in OnActivityResult
, in result.isSuccess()
,但它不起作用,我想它必须被调用onCreate
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if(result.isSuccess()) {
userAccount = result.getSignInAccount();
Log.i("GoogleAccountTest", "Login Successful");
} else {
String message = result.getStatus().getStatusMessage();
if(message == null || message.isEmpty()) {
message = "Something went wrong";
}
new AlertDialog.Builder(this).setMessage(message).setNeutralButton("Ok", null).show();
}
}
}
然后我尝试用一个按钮制作我自己的登录屏幕以使用谷歌登录,我创建了一个接口,实现了它AndroidLauncher
并通过我的初始化方法将它传递给然后调用.startSignInIntent()
,但问题是我仍然没有赶上电话的天气成功与否在这里。
在这种情况下,我应该如何实现 Google Play Services Login?
解决方案
好的,几天后如果有人想知道我是如何处理它的,这就是我的解决方案:
我创建了带有登录按钮的附加屏幕,我StartSignInIntent
在按下按钮时调用,然后在主要活动中我创建了一个标志, onActivityResult
当StartSignInIntent
结果成功时我将其设置为 true。然后在渲染方法中带有登录按钮的屏幕中,我检查该标志,当它变为真时,我将屏幕更改为主菜单
推荐阅读
- swift - 如何从我们的聊天 SDK 中获取授权码
- javascript - 使用 PivotTable.js 时不解释 JavaScript 函数
- regex - grep 仅用于包含“标准”美国字符的行
- javascript - 如何保护数组不被刷新
- c++ - 应用程序执行程序与 ADsOpenObject 的 lpszUserName
- sqlite - 如何实现与 FireDAC SQLite 的独占连接?
- flutter - 在 Flutter 中从加密为 Base64 的 pdf 文件中获取 pdf 页码
- reactjs - 如何在 reactjs 的公共 html 文件中进行有条件的外部脚本引用。即一个用于生产,一个用于暂存
- javascript - 如何使用 observables 和 RxJS 正确管理获取错误响应?
- android - 从地址获取 LatLng