2

アプリケーションを Galaxy Tab (v1) で実行しています。
私は追加しました

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

許可。

次のコードを使用して、サイトがオンラインかどうかを確認しています。

public boolean checkIfSite(final String url) {
    Data.isUp = false;

    new Thread(new Runnable() {
        public void run() {
            try {
                Data.isUp = InetAddress.getByName("google.com").isReachable(25000);
            } catch (UnknownHostException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }).start();
    return Data.isUp;
}

私はそれを実行し、例外をスローします:

01-05 19:15:04.007: W/System.err(3303): java.net.UnknownHostException: Unable to resolve host "google.com": No address associated with hostname
01-05 19:15:04.007: W/System.err(3303):     at java.net.InetAddress.lookupHostByName(InetAddress.java:426)
01-05 19:15:04.007: W/System.err(3303):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
01-05 19:15:04.007: W/System.err(3303):     at java.net.InetAddress.getByName(InetAddress.java:295)
01-05 19:15:04.007: W/System.err(3303):     at com.sonyericsson.extras.liveview.plugins.sandbox.SandboxPluginService$2.run(SandboxPluginService.java:184)
01-05 19:15:04.007: W/System.err(3303):     at java.lang.Thread.run(Thread.java:856)
01-05 19:15:04.007: W/System.err(3303): Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated with hostname)
01-05 19:15:04.011: W/System.err(3303):     at libcore.io.Posix.getaddrinfo(Native Method)
01-05 19:15:04.011: W/System.err(3303):     at libcore.io.ForwardingOs.getaddrinfo(ForwardingOs.java:55)
01-05 19:15:04.011: W/System.err(3303):     at java.net.InetAddress.lookupHostByName(InetAddress.java:411)
01-05 19:15:04.011: W/System.err(3303):     ... 4 more
4

1 に答える 1

0

google.com だけでなく、 http: //google.comを試してみましたか?

@SLaks が言うように、スレッドを開始した後に戻るため、メソッドが間違っているため、コールバックを使用する必要があります (iOS でデリゲートを使用する場合と同様)。

于 2014-01-09T09:14:09.357 に答える