2017-08-10 50 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()); 

我註冊一個BroadcastReceiver這樣做我一直在通過打開和關閉飛行模式來測試它。接收器檢測到變化及其觸發。

問題是,在改變飛行模式狀態後,並不是所有的接口都是從getNetworkInterfaces()呼叫中收到的。如果我直接調用該方法而不涉及飛行模式,則接口列表包含一個名爲「ppp0」的接口,但打開和關閉飛行模式後,該呼叫不會返回列表中的「ppp0」接口, t查詢它...

爲什麼會發生這種特定的接口?

回答

0

我最終做的是每分鐘檢查一次接口,而不是使用BroadcastReceiver。這樣,接口最終會在一段時間後回到接口列表。

+0

如果有人知道更好的方法,我會改變他接受的回答他的答案 –

相關問題