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();
ただし、「ホスト」がネットワークに接続されていない場合でも、接続済みとして表示されます。
3) URL を要求し続け、例外が発生するかどうかを確認しようとしましたが、これはデスクトップで実行されている ARC でのみ機能します。アプリを Chromebook に公開すると、ConnectTimeout を設定しても、リクエストは処理されます (タイムアウトすることはありません)。アプリを起動したときに接続がない場合、例外が発生します。問題は、アプリが実行されている状態で WIFI を無効にした場合のみです。リクエストが「ハング」するだけです (Chromebook でのみ、ARC/Mac で動作します)。
URL url = new URL("http://www.google.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setConnectTimeout(1000);
connection.connect();
助言がありますか?