gpt4 book ai didi

android - SIGN_IN_REQUIRED - Google 游戏

转载 作者:行者123 更新时间:2023-11-30 00:53:04 32 4
gpt4 key购买 nike

我有一个简单的游戏,有一个排行榜按钮,它显示了玩家的最高分,在发布这个问题之前,我已经确定了以下几点:

  1. SHA1 指纹。
  2. 已启用 API。
  3. 正确的包裹。
  4. 正确的应用 ID。
  5. 导入并添加了 Google Play 服务库。
  6. 已导入配置文件。
  7. Admob、Analytics 和崩溃报告运行良好。
  8. GET ACCOUNTS 已经添加,还是一样。

我的问题是,没有显示帐户选择器/选择器,甚至没有登录,我收到以下错误:

ConnectionResult{statusCode=SIGN_IN_REQUIRED, resolution=PendingIntent{fbd982b: android.os.BinderProxy@b3d396d}, message=null

代码:

public class MainActivity extends AppCompatActivity implements
GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {

ImageButton mLeaderBoard;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_welcome);
mLeaderBoard = (ImageButton) findViewById(R.id.leaderboard);
mLeaderBoard.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ShowBoard();
}
});

mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Games.API)
.addScope(Games.SCOPE_GAMES)
.addScope(SCOPE_PLUS_PROFILE)
.build();
}

@Override
protected void onStart() {
super.onStart();
mGoogleApiClient.connect();

}

@Override
protected void onStop() {
super.onStop();
if (mGoogleApiClient.isConnected()) {
mGoogleApiClient.disconnect();
}
}

private void ShowBoard() {
if(!isSignedIn()){
mGoogleApiClient.connect();
}
mGoogleApiClient.connect();
if(isSignedIn())
startActivityForResult(Games.Leaderboards.getLeaderboardIntent(mGoogleApiClient,
LEADERBOARD_TOP_SCORE_ID), 1);
else
Toast.makeText(this, getResources().getString(R.string.leaderboard_not_available), Toast.LENGTH_LONG).show();

}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == 1) {

Log.i("GoogleSignInApi","Result: " + resultCode + " - Data: " + data.getData());
if (resultCode == RESULT_OK) {

}
}
}



@Override
public void onConnected(Bundle bundle) {

}

@Override
public void onConnectionSuspended(int i) {
mGoogleApiClient.connect();
}

@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
Log.i("GoogleSignInApi","Problem: " + connectionResult.getErrorMessage() + " - Test: " + connectionResult.toString());
}

}

最佳答案

据我所知,您应该有 SCOPE_PLUS_PROFILE - OAuth2.0访问用户个人资料数据的范围。您需要启用 Google+ API 并使用 SHA1 和您的包创建凭据。 Oauth 同意屏幕,其中包含您的电子邮件和产品名称。

确保您拥有权限和所需的所有包,示例如下:

applicationId in tag <application> 
package name in AndroidManifest.xml
package name in Credentials in Google Developer Console

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />

此外,您需要调用 onActivityResult .当客户端无法连接到 Google Play 服务时,需要它来处理所有可能的错误代码。

关于android - SIGN_IN_REQUIRED - Google 游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40615058/

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