4

在 android... 给定一组活动套接字 (<10),我的广播接收器从 ConnectivityManager 获得一个意图,指示连接状态已更改。如何将意图与受影响的套接字相关联?

我可以从意图中获取 NetworkInfo。

final ConnectivityManager cm = 
   (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo netinfo = 
   ConnectivityManagerCompat.getNetworkInfoFromBroadcast(cm, aIntent);

这给了我接口类型。我也可以使用套接字来获取网络接口。

final InetAddress sourceAddr = socket.getLocalAddress();
final NetworkInterface ninterface = 
     NetworkInterface.getByInetAddress(sourceAddr);

但我认为没有办法从这里开始。

有没有办法让 NetworkInfo 与套接字关联?

我正在考虑手动构建接口名称和网络类型之间的映射。此映射将加载固化初始化。当我运行 ip 或 netstat 命令时,这基本上是我在视觉上所做的。

4

0 回答 0