Android GoogleAppClient.isConnected()返回值始终为false

Android GoogleAppClient.isConnected()返回值始终为false,android,google-play-services,google-play-games,Android,Google Play Services,Google Play Games,我试图在我的游戏中实现排行榜。 我写了这段代码: GoogleApiClient mGoogleApiClient; mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Drive.API) .addScope(Drive.SCOPE_FILE) .build(); mGoogleApiClient.connect(); //.... while(!mGoogleApiClient.isConnec

我试图在我的游戏中实现排行榜。 我写了这段代码:

GoogleApiClient mGoogleApiClient;
mGoogleApiClient = new GoogleApiClient.Builder(this)
    .addApi(Drive.API)
    .addScope(Drive.SCOPE_FILE)
    .build();

mGoogleApiClient.connect();
//....

while(!mGoogleApiClient.isConnected())Log.d("","NO CONNECTED");
Games.Leaderboards.submitScore(mGoogleApiClient, "MY_LEADERBOARD_ID",newscore);
为什么
mgoogleapclient.isConnected()
总是返回false

EDIT1:好的,现在它可以工作了(我已经用
Games.API更改了
Drive.API
,用
Games.SCOPE\u文件更改了
Drive.SCOPE\u FILE
),但是当我调用
submitScore()
时,即使日志中一切正常,排行榜仍然是空的。如何检查
submitScore()
是否真的有效

EDIT2:我用过

startActivityForResult(Games.Leaderboards.getLeaderboardIntent(mGoogleApiClient, "MY_LEADERBOARD_ID"), REQ_LEADERBOARD);

一切正常

您需要向构建器(或GoogleAppClient)添加几个回调侦听器。最可能发生的情况是登录失败,因为您还没有权限。您需要处理该故障,以便用户可以授权您的应用程序


更多阅读:

您需要向构建器(或GoogleAppClient)添加几个回调侦听器。最可能发生的情况是登录失败,因为您还没有权限。您需要处理该故障,以便用户可以授权您的应用程序


更多阅读:

我发现出于某种原因,尽管.connect()是异步的,并且在之后立即等待一个while循环是合乎逻辑的,但显然出于某种原因,它仍然需要在主UI线程上执行某些操作,因此您的断开()是有原因的总是返回false,因为while循环实际上是阻塞的。connect()。如果我能猜一猜为什么我要假设调用.connect()执行一段代码,该代码将自己放在稍后执行的主UI线程队列中,通过在那里进行while循环,您将永远阻止该代码段执行/连接。

尽管.connect()是出于某种原因我发现的它是异步的,并且在之后立即等待while循环是合乎逻辑的,显然出于某种原因,它仍然需要在主UI线程上执行一些事情,因此您的isConnected()总是返回false,因为while循环实际上是阻塞的。connect()。如果我能猜一下为什么我要假设调用.connect()执行一段代码,该代码将自身置于稍后执行的主UI线程队列中,并在那里进行while循环,你将永远阻止这段代码执行/连接。

有趣的是,人们因为父母在成长过程中没有给予足够的关注而否定正确的响应。现实检查。我是对的,你错了,孩子。觉得有趣的是,人们否定正确的回答是因为他们的父母在成长过程中没有给予他们足够的关注。现实检查。我是对的,你错了,孩子。