【问题标题】:How can I detect when the device gets a new IP?如何检测设备何时获得新 IP?
【发布时间】:2011-12-23 04:38:47
【问题描述】:

出于多播目的,我正在寻找一种简单的方法来检测 Android 设备的 IP 何时发生变化。我该怎么做?

更具体地说,我希望检测:

  • 当设备连接到新的 Wifi 网络并从 DHCP 获取 IP 时
  • 当设备由于某种原因需要更新 IP 时

【问题讨论】:

    标签: android ip dhcp


    【解决方案1】:

    您可以使用ConnectivityManager

    您可以使用它来查询当前的连接状态:

    ConnectivityManager connMananger = (ConnectivityManager) 
                context.getSystemService(Context.CONNECTIVITY_SERVICE);
    
    NetworkInfo netInfo = connMananger.getActiveNetworkInfo();
    

    可以通过NetworkInterface.getNetworkInterfaces()获取网络接口的当前IP地址

    并且您可以通过CONNECTIVITY_ACTION broadcast接收连接状态何时更改的自动通知

    【讨论】:

    • 听起来不错。但是这种广播是否仅在 IP 更改时才会发生,还是有很多不同的事情会触发它?
    • 它可以由连接的任何变化触发,但我相信应该有一些额外的检查,或者您可以检测 NetworkInfo/NetworkInterface 对象之间的差异
    • CONNECTIVITY_ACTION: "此常量在 API 级别 28 中已弃用。"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-14
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 2013-07-29
    相关资源
    最近更新 更多