如何让我的Android应用程序检测ARC中是否存在互联网连接?

时间:2015-05-22 17:30:39

标签: android google-chrome google-chrome-arc

1)我的应用程序使用BroadcastReceiver监视互联网连接,但在ARC上运行时,禁用WIFI不会触发任何事件。

    <receiver
        android:name=".NetworkReceiver"
        android:label="Network Monitor" >
        <intent-filter android:priority="1" >
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        </intent-filter>
    </receiver>

2)我尝试使用以下方法检查网络状态:

final ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo ni = connectivityManager.getActiveNetworkInfo();
boolean isConnected = ni!=null && ni.isConnected();

但即使是&#34;主持人&#34;它也显示为连接没有连接到任何网络。

3)我试图继续请求URL并检查是否发生异常,但这仅适用于在桌面上运行的ARC。当我将应用程序发布到chromebook时,请求只处理(从不超时)甚至设置ConnectTimeout。有趣的是,如果在启动应用程序时没有连接,它将引发异常。问题是,只有在我的应用程序运行时禁用WIFI - 然后请求将只是&#34;挂起&#34; (仅在chromebook中,它适用于ARC / Mac)。

URL url = new URL("http://www.google.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(1000);
connection.connect();

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

正如您所发现的,我们没有正确处理网络连接断开的情况。如果我们还没有处理其他边缘情况,我不会感到惊讶。

file a bug随时帮助我们确定解决此问题和其他网络问题的优先顺序。

让连接更改事件正常工作似乎是我们应该确定的事情。