我正在尝试使Play游戏服务正常运行,现在,我正在尝试简单的登录尝试。 整整两天,我都停留在身份验证阶段。
我已遵循文档,并尝试再次从头开始链接我的应用程序。 仔细检查了我的SHA-1密钥,同时调试和发布。 (Play控制台中有两个链接的应用)。还检查了API控制台中的所有内容是否相同。 当我检查登录尝试的结果时,我看到: statusCode = SIGN_IN_REQUIRED 。
我检查或做过的事情
- SHA-1键
- 应用ID正确且在清单中
- 正确的包裹
- google-services.json已下载
- 链接应用程序
- 在播放控制台和新链接中创建一个新应用
- Firebase&Crashlytics正在运行
- 启用了测试用户
静音登录:
private void signInSilently() {
GoogleSignInOptions signInOptions = GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN;
GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(context);
if (GoogleSignIn.hasPermissions(account, signInOptions.getScopeArray())){
GoogleSignInAccount signedInAccount = account;
Log.d("TEST_SILENT", "onComplete: " + signedInAccount);
} else {
final GoogleSignInClient signInClient = GoogleSignIn.getClient(context, signInOptions);
signInClient
.silentSignIn()
.addOnCompleteListener(
activity,
new OnCompleteListener<GoogleSignInAccount>() {
@Override
public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
if (task.isSuccessful()) {
GoogleSignInAccount signedInAccount = task.getResult();
Log.d("TEST_SILENT", "onComplete: " + signedInAccount);
} else {
Intent i = signInClient.getSignInIntent();
activity.startActivityForResult(i, 9001);
}
}
});
}
}
交互式登录:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 9001) {
GoogleSignInResult res = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (res.isSuccess()) {
Log.d("ASD", "onActivityResult: " + res.getSignInAccount());
} else {
Log.e("Asd", "onActivityResult: " + res.getStatus());
}
}
}
添加了APP ID
<meta-data android:name="com.google.android.gms.games.APP_ID"
android:value="@string/app_id" />
无论我做什么,我都无法登录。 日志猫的状态为:
E/Asd: onActivityResult: Status{statusCode=SIGN_IN_REQUIRED, resolution=null}