我1天前曾尝试登录Google Play游戏,但除非有,但我没有收到以下消息。
Logcat
I/salahtaha: com.google.android.gms.common.api.ApiException: 4: 4:
清单
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.salah250.test.test">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Java代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
private void signInSilently() {
GoogleSignInClient signInClient = GoogleSignIn.getClient(this,
GoogleSignInOptions.DEFAULT_GAMES_SIGN_IN);
signInClient.silentSignIn().addOnCompleteListener(this,
new OnCompleteListener<GoogleSignInAccount>() {
@Override
public void onComplete(@NonNull Task<GoogleSignInAccount> task) {
if (task.isSuccessful()) {
GoogleSignInAccount signedInAccount = task.getResult();
Toast.makeText(MainActivity.this, "a", Toast.LENGTH_SHORT).show();
} else {
Log.i("salahtaha",String.valueOf(task.getException()));
}
}
});
}
@Override
protected void onResume() {
super.onResume();
signInSilently();
}
}
我使用游戏服务在Google Play控制台上添加了游戏,并且与Firebase项目相关联。
注意:我的应用中的SHA1与我的Firebase相同
答案 0 :(得分:3)
考虑到API异常,提供了状态码4,该状态码与Google API for Android文档中的以下信息相关联。
客户端尝试连接到服务,但用户未登录。客户端可以选择不使用API继续操作。或者,如果hasResolution()返回true,则客户端可以调用startResolutionForResult(Activity,int)来提示用户登录。在登录活动返回RESULT_OK之后,进一步的尝试应该会成功。
此外,您正在调用SignInSliently的方法,我还发现了以下信息:
- (void)signInSilently
尝试登录之前经过身份验证的用户,而无需进行交互。
在此过程结束时将调用该委托,指示成功或失败。
因此,我认为您尝试登录时没有任何经过身份验证的登录记录。要使用signInSilently,必须手动登录该服务。
向noktigula致谢,以在APIException question中提供这些文档的来源,这会导致与此问题相同的错误。