谷歌游戏中心 - 活动自动调用beginUserInitiatedSignIn()

5

我最近更新了我的应用中的Google Play服务库,使用了新的Google API。在这样做时,每当我第一次启动一个Activity(该Activity扩展了BaseGameActivity)而没有登录时,Activity会自动弹出登录对话框。

我没有在任何地方调用beginUserInitiatedSignIn()这非常令人恼火 - 有没有办法解决这个问题?

以下是logcat:

03-02 21:13:08.067: W/PopupManager(12332): You have not specified a View to use as content view for popups. Falling back to the Activity content view which may not work properly in future versions of the API. Use setViewForPopups() to set your content view.
03-02 21:13:08.137: D/dalvikvm(12332): GC_FOR_ALLOC freed 223K, 3% free 9306K/9560K, paused 16ms, total 16ms
03-02 21:13:08.197: I/Adreno-EGL(12332): <qeglDrvAPI_eglInitialize:320>: EGL 1.4 QUALCOMM Build: I0404c4692afb8623f95c43aeb6d5e13ed4b30ddbDate: 11/06/13
03-02 21:13:08.228: D/OpenGLRenderer(12332): Enabling debug mode 0
03-02 21:13:39.771: W/PopupManager(12432): You have not specified a View to use as content view for popups. Falling back to the Activity content view which may not work properly in future versions of the API. Use setViewForPopups() to set your content view.
03-02 21:13:39.891: D/dalvikvm(12432): GC_FOR_ALLOC freed 227K, 3% free 9303K/9560K, paused 17ms, total 17ms

你能发布Logcat吗? - Marco Acierno
@MarcoAcierno 我已经添加了一个,但我认为它没有帮助。 - user2442638
抱歉,我的错误。我以为你遇到了崩溃(可能是个糟糕的一天)。 - Marco Acierno
1个回答

4

根据这个问题,这是默认行为。

常见问题解答(FAQ)中写道:

[4] 为什么GameHelper/BaseGameActivity在应用启动时尝试登录?

BaseGameActivity和GameHelper的默认行为是在您的应用程序启动时向用户显示登录流程(同意对话框等)。自然地,一旦用户第一次登录,他们将不会再看到同意流程,因此它将是一个无缝的体验。让用户尽早登录很重要,这样您的应用程序可以立即利用Google Play游戏API(例如,使用Cloud Save保存用户的进度,解锁成就等)。如果用户取消登录流程,则BaseGameAcitivity/GameHelper将记住该取消操作。如果取消操作的总数达到预定义的最大值(默认为3),用户将不再在应用程序启动时提示进行登录。如果发生这种情况,如果您提供了“登录”按钮,则仍然可以通过单击应用程序的“登录”按钮登录。

[5] 我不喜欢GameHelper的新“自动登录”功能。我如何禁用它?

要禁用此功能并返回旧行为,可以编辑GameHelper.java并将DEFAULT_MAX_SIGN_IN_ATTEMPTS常量设置为0,或在运行时调用GameHelper.setMaxAutoSignInAttempts(0),然后调用GameHelper.setup()(或者从您的Activity的onCreate方法相应地调用)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接