マルチキャストの目的で、Android デバイスの IP がいつ変更されたかを検出する簡単な方法を探しています。どうすればそうすることができますか?
より具体的には、次のことを検出しようとしています。
- デバイスが新しい Wifi ネットワークに接続し、DHCP から IP を取得するとき
- デバイスが何らかの理由で IP を更新する必要がある場合
ConnectivityManagerでこれを行うことができます:
これを使用して、現在の接続状態を照会できます。
ConnectivityManager connMananger = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = connMananger.getActiveNetworkInfo();
ネットワーク インターフェイスの現在の IP アドレスはNetworkInterface.getNetworkInterfaces()で取得できます。
また、 CONNECTIVITY_ACTIONブロードキャストを介して、接続状態が変化したときに自動通知を受け取ることができます