android开发分享NetworkInfo和NetworkInterface之间的解决方法映射

我在2011年遇到了这个跟踪器问题中报告的问题,并希望开发一个适当的解决方法。 我想将所有Android设备的networking接口显示给用户,并按照他们的types以及他们是否当前处于活动状态进行分类。 我的目标是至less达到API 15。

据我所知,有两种获取networking接口信息的方法:

跟踪器中解释的问题是没有内置的方法将NetworkInfo映射到NetworkInfo ,反之亦然,我想避免使用接口名称映射到适当的NetworkInfo如果可能的话)。

由于我有一种预感,这是不可能的,是否有列表中的大多数供应商的所有潜在的networking接口名称? 对于使用高通基带处理器的设备, rmnet[0-9]似乎很常见,WiFi等的wlan[0-9]等等。

在最坏的情况下,我想我可以列出接口types为未知,如果接口名称不匹配任何常见的模板。 提前致谢。

    从API 21开始,可以使用LinkPropertiesNetwork network对象中获取NetworkInterface对象:

     ConnectivityManager manager = getSystemService(ConnectivityManager.class); LinkProperties prop = manager.getLinkProperties(network); NetworkInterface iface = NetworkInterface.getByName(prop.getInterfaceName()); 

    然而,尽pipegetAllNetworks()应该取代getAllNetworkInfo() (前者在API 21中引入,后者在API 23中被弃用),但是从Android 6.0.1开始,它并没有。 getAllNetworks() 不会列出所有networking(参见SO Q#33374766 )。 看起来像一个错误。

    或者,为了通知用户所有networking连接的状态,可以使用registerNetworkCallback针对NetworkCapabilities ( 即, TRANSPORT_CELLULARTRANSPORT_WIFITRANSPORT_ETHERNETTRANSPORT_BLUETOOTHTRANSPORT_VPN )中可用的每个传输types注册一组callback。

    以上就是android开发分享NetworkInfo和NetworkInterface之间的解决方法映射相关内容,想了解更多android开发(异常处理)及android游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/addevelopment/513658.html

      (1)
      上一篇 2020年11月29日
      下一篇 2020年11月29日

      精彩推荐