2017-08-10 5 views
0

特定のネットワークインターフェイスに対して行われたネットワーク変更を照会しようとしています。 Androidデバイスのすべてのネットワークインターフェイスを受信して​​いません

<receiver android:name="com.my.app.ReceiverNetworkInterfaceChange"> 
     <intent-filter> 
      <action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
     </intent-filter> 
    </receiver> 

し、変更があった場合、それはこのコールを使用して、インターフェイスを照会する方法をトリガー:

final List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces()); 

I

私はこのようなBroadcastReceiverを登録することで、それをやっています飛行機モードをオンとオフにしてテストしています。受信機は変化を検出し、その変化を検出する。

飛行機モードのステータスを変更した後で、すべてのインターフェイスがgetNetworkInterfaces()コールから受信されないという問題があります。飛行機モードを使わずに直接メソッドを呼び出すと、インターフェイスのリストに "ppp0"というインターフェイスが含まれますが、飛行機モードをオンまたはオフにした後、コールはその "ppp0"インターフェイスをリストに返しません。質問してください...

この特定のインターフェイスではどうしてですか?

答えて

0

最終的には、BroadcastReceiverの代わりに毎分インターフェイスをチェックしていました。このようにして、しばらくするとインターフェイスは最終的にインターフェイスリストに戻ります。

+0

誰かがより良い方法を知っている場合、私は彼の答えに受け入れられた答えを変更します –

関連する問題