0

デバイスの 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 "";
}

問題は、コードが 192.xxx.xxx.xxx アドレスではなく 10.xx.xx.xx IP を選択することです。192 アドレスを使用するように強制するにはどうすればよいですか?

Samsung Galaxy Express を使用しています。問題を引き起こしているいくつかのタスクで、WiFi ではなくセルを使用しているようです。私はセル信号のないSamsungタブレットを持っており、これは192アドレス(私が知っている唯一のオプション)を選択しますが、アプリは全体的に機能します.ExpressはWiFiではなくセルを使用しているようです.

「モバイル ネットワーク」をオフにしてみましたが、効果がありません。

追加の質問として、SIM カードを取り出さずに携帯電話のモバイル ネットワークを完全に無効にする方法を教えてください。

ありがとう

4

1 に答える 1

0

問題は、コードが 192.xxx.xxx.xxx アドレスではなく 10.xx.xx.xx IP を選択することです。192 アドレスを使用するように強制するにはどうすればよいですか?

あなたの問題は、あなたの電話がwifi経由でモバイルデータを選択する原因となる弱いwifi接続であるようです. システム属性であるアプリケーションから 192.xxx アドレス (つまり、Wifi) を強制することはできません。

追加の質問として、SIM カードを取り出さずに携帯電話のモバイル ネットワークを完全に無効にする方法を教えてください。

理想的には、電源メニューでデータを無効にするオプションが必要です (サムスンの電源ボタンを長押しします)。それでも問題が解決しない場合は、[設定] > [その他のモバイル ネットワーク] > [アクセス ポイント] > [表示されるすべての APN を削除] に移動してください。

于 2014-01-10T10:02:49.253 に答える