如何检测设备何时获得新IP?

yyd*_*ydl 6 ip android dhcp

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

更具体地说,我正在寻找:

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

Tho*_*nan 6

您可以使用ConnectivityManager执行此操作:

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

ConnectivityManager connMananger = (ConnectivityManager) 
            context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo netInfo = connMananger.getActiveNetworkInfo();
Run Code Online (Sandbox Code Playgroud)

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

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