2

こんにちは、電話またはタブレットがネットワーク (モバイルまたは Wi-Fi) に接続されていることを確認したいです。

このネットワークはインターネットにアクセスし、データを送受信しますか?

私はこのコードを使用します:

    ConnectivityManager cm = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo[] netInfo = cm.getAllNetworkInfo();
    for (NetworkInfo ni : netInfo) {
        if (ni.getTypeName().equalsIgnoreCase("WIFI")) {
            if (ni.isConnected()) {
                Toast.makeText(context,"WIFI CONNECTED",Toast.LENGTH_LONG).show();

                Boolean m = isOnline();
                Toast.makeText(context,String.valueOf(m),Toast.LENGTH_LONG).show(); 


            } else {
                Toast.makeText(context,"WIFI NOT CONNECTED AND AVAILABLE",Toast.LENGTH_LONG).show();    
            }


public boolean isOnline() {

    Runtime runtime = Runtime.getRuntime();
    try {

        Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
        int     exitValue = ipProcess.waitFor();
        return (exitValue == 0);

    } catch (IOException e)          { e.printStackTrace(); } 
      catch (InterruptedException e) { e.printStackTrace(); }

    return false;
}

しかし、それは常にfalseを返します

(私は BlueStacks でアプリをテストします)。

私はstackoverflowに存在するすべてのコードをテストします

4

1 に答える 1