我有一个 IntentService 可以进行一些 Web 服务调用。在拨打这些电话之前,我会检查以确保设备具有网络连接。我这样做是这样的:
private boolean isOnline() {
ConnectivityManager connec = (ConnectivityManager)getSystemService(getApplicationContext().CONNECTIVITY_SERVICE);
return connec.getNetworkInfo(0).isConnectedOrConnecting();
}
不幸的是,当我在我的 Android 设备上调试时,当我同时拥有网络和无线连接时,这会返回 false。
关于 connec.getNetworkInfo(0) 的一些有趣的花絮:
mIsAvailable = true
mNetworkType = 0
mTypeName = "mobile"
mState.name = "DISCONNECTED"
显然,这段代码是不够的(也许只有当我通过网络发送一些比特并打开收音机时它才会返回 true?)。此外,由于我不熟悉 ConnectivityManager,我假设我应该扫描所有网络(即:getNetworkInfo(0 到 N))。
我怎样才能正确地完成我想要的东西?