在我的Android应用中,我想使用
连接到IP
ipaddr = InetAddress.getByName("192.168.1.116");
现在,问题在于该IP由于DHCP而不断变化,并且因为设备需要在不同的场合连接到不同的路由器。因此,我在开头添加了一个文本框对话框,允许用户手动输入IP。
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("DEVICE IP");
alert.setMessage("Enter DEVICE IP");
final EditText input = new EditText(this);
input.setRawInputType(Configuration.KEYBOARD_12KEY);
alert.setView(input);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
device_ip = input.getText().toString();
Log.d("MY_LOGS", "IP SET TO " + device_ip);
Toast.makeText(MyActivity.this, "DEVICE IP: " + device_ip ,Toast.LENGTH_LONG).show();
}
});
alert.show();
现在,问题是我从用户那里获得此String
的IP后,我正在这样做
try {
ipaddr = InetAddress.getByName(device_ip);
Log.d("MY_LOGS", "ipaddr SET TO: " + ipaddr.toString());
} catch (Exception e) {
Log.d("MY_LOGS", e.getMessage());
}
但是,在这种情况下,应用程序不会将消息发送到IP。
将IP手动设置为字符串并将IP作为字符串变量输入可能有什么区别?
各种案例的日志:
device_ip
的日志:
IP SET TO 192.168.1.116
如果手动输入IP,则记录日期:
ipaddr SET TO: 192.168.1.116
如果对IP使用String变量,则记录:
ipaddr SET TO: localhost