GoogleApiClient.isConnected()在飞行模式下返回true

时间:2014-04-09 01:38:20

标签: google-api-java-client google-play-games google-api-client

我们遇到以下似乎没有意义的行为:尝试连接GoogleApiClient的实例并在我们{{1}的实例中调用isConnected()即使客户端无法连接到服务,也会返回true。

为了确认此行为,我在启动应用程序之前启用了飞行模式,然后打印GoogleApiClient返回的值等于isConnected()

所以现在我很困惑。这是预期的行为还是错误?它是否报告成功连接,因为API处理是否透明地脱机?

1 个答案:

答案 0 :(得分:2)

此isConnected()调用与设备是否具有连接无关,它说明您是否已连接到设备本身上的Google Play服务 。在您连接到服务之前,有许多操作无法执行,但无论用户是否在线,都可以执行这些操作(例如,写下Plus时刻)。

没有电话确定用户是否已连接到互联网,因为已有众所周知的方法可以做到这一点,并且该连接很脆弱。仅仅因为您的用户在开始您的活动时已连接,并不意味着当您准备好拨打电话时,他们将在几分钟(甚至几秒钟)内连接。

话虽如此,有时需要连接到服务并需要互联网连接(特别是在授权您的应用时)。