未接收Android设备的所有网络接口

时间:2017-08-10 07:30:10

标签: android network-interface

我试图查询对某些特定网络接口所做的网络更改。

我通过注册BroadcastReceiver这样做:

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

我通过打开和关闭飞机模式来测试它。接收器检测到变化及其触发。

问题是在更改飞行模式状态后,并非从getNetworkInterfaces()呼叫接收到所有接口。如果我直接调用该方法而不涉及飞行模式,则接口列表包含一个名为&#34; ppp0&#34;的接口,但在打开和关闭飞行模式后,呼叫不会返回&#34; ppp0&# 34;列表上的界面,所以我无法查询...

为什么这个特定界面会发生这种情况?

1 个答案:

答案 0 :(得分:0)

我最终做的是每分钟检查一次界面,而不是使用BroadcastReceiver。这样,界面最终会在一段时间后返回到接口列表。