Кодът, който използвам, за да получа IP адреса на моето устройство, е:
public static String getIPAddress(boolean useIPv4) {
try {
List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface intf : interfaces) {
List<InetAddress> addrs = Collections.list(intf.getInetAddresses());
for (InetAddress addr : addrs) {
if (!addr.isLoopbackAddress()) {
String sAddr = addr.getHostAddress().toUpperCase();
boolean isIPv4 = InetAddressUtils.isIPv4Address(sAddr);
if (useIPv4) {
if (isIPv4)
return sAddr;
} else {
if (!isIPv4) {
int delim = sAddr.indexOf('%'); // drop ip6 port suffix
return delim<0 ? sAddr : sAddr.substring(0, delim);
}
}
}
}
}
} catch (Exception ex) { } // for now eat exceptions
return "";
}
Проблемът е, че кодът избира 10.xx.xx.xx IP вместо 192.xxx.xxx.xxx адрес, който искам. Как мога да го накарам да използва 192 адреса?
Използвам Samsung Galaxy Express. Изглежда, че използва Cell, а не WiFi за някои задачи, което създава проблеми. Имам таблет Samsung, който няма клетъчен сигнал и това избира адреса 192 (единствената опция, която познавам), но като цяло приложението работи, като Express не използва Cell, а не WiFi, както изглежда.
Опитах да изключа "мобилни мрежи", но това не помогна.
Като допълнителен въпрос, някаква идея как да деактивирам напълно мобилната мрежа на телефона си, без да се налага да вадя SIM картата?
Благодаря