1

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();

助言がありますか?

4

1 に答える 1

1

お気づきのとおり、ネットワーク接続がダウンしているケースを適切に処理していません。私たちがまだ扱っていない他のエッジケースがあったとしても、私は驚かないでしょう。

この問題やその他のネットワークの問題の修正に優先順位を付けるために、お気軽にバグを報告してください。

接続変更イベントを機能させるには、間違いなく修正する必要があるように思えます。

于 2015-05-26T22:14:06.750 に答える