需要使用192.内部IP地址,我的手机正在选择10

时间:2014-01-10 09:39:09

标签: android wifi ip-address samsung-mobile network-interface

我用来获取设备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地址?

我正在使用三星Galaxy Express。它似乎使用Cell而不是WiFi来解决导致问题的一些任务。我有一个三星平板电脑,没有Cell信号,这选择了192地址(我知道的唯一选项),但应用程序整体工作,因为Express似乎不是使用Cell而不是WiFi。

我试过关闭“移动网络”,但这没有帮助。

作为一个额外的问题,任何想法我如何完全禁用手机上的移动网络而无需取出SIM卡?

谢谢

1 个答案:

答案 0 :(得分:0)

  

问题是代码选择10.xx.xx.xx IP而不是   我希望它的192.xxx.xxx.xxx地址。如何强制它使用192地址?

似乎您的问题是弱WiFi连接导致您的手机通过wifi选择移动数据。您不能从应用程序强制192.xxx地址(即Wifi),它是系统属性。

  

作为一个额外的问题,任何想法我如何完全禁用移动网络   在我的手机上,无需取出SIM卡?

理想情况下,您应该可以选择在电源菜单中禁用数据(长按三星上的电源按钮)。如果这没有帮助,请执行以下操作 转到设置&gt;更多移动网络&gt;接入点&gt;删除你看到的所有APN。