在 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 命令时,这基本上是我在视觉上所做的。