我有一个应用程序。这个应用程序在服务器端口侦听。服务器发送到我的IP数据。我需要在我的ip更改时检测,例如,没有3g conexion,激活WIFI。这会生成一个新的ip,我需要将这个ip发送到服务器,服务器在这个新的ip中发送数据。问题是:我怎么知道我的ip何时改变了???
谢谢!
答案 0 :(得分:0)
获取nw接口NetworkInterface.getNetworkInterfaces()
,然后执行getInetAddresses()
。
这样的事情让连接改变了广播:
private class ConnectivityBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)
// ...
答案 1 :(得分:0)
您可以通过为CONNECTIVITY_ACTION注册BroadcastReciever
来获取此信息并执行以下操作:
ConnectivityManager connMananger = (ConnectivityManager)
context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = connMananger.getActiveNetworkInfo();