检查用户是否已连接到Android上的WIFi

时间:2014-11-03 07:57:32

标签: android android-wifi server

我正在设计一款游戏应用,它要求用户保持良好的WiFi连接。而且我还需要两个用户知道其他用户是否在wifi上。 Android平台将用于此游戏应用程序开发。

1 个答案:

答案 0 :(得分:0)

只需创建以下检查互联网连接的类:

public class ConnectionStatus {

    private Context _context;

    public ConnectionStatus(Context context) {
        this._context = context;
    }

    public boolean isConnectionAvailable() {
        ConnectivityManager connectivity = (ConnectivityManager) _context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null) {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null)
                for (int i = 0; i < info.length; i++)
                    if (info[i].getState() == NetworkInfo.State.CONNECTED) {
                        return true;
                    }
        }
        return false;
    }
}

该类只包含一个返回连接状态的布尔值的方法。因此,简单来说,如果方法找到与Internet的有效连接,则返回值为true,否则为false,如果未找到有效连接。

MainActivity中的以下方法然后从前面描述的方法调用结果,并提示用户采取相应的行动:

public void addListenerOnWifiButton() {
        Button btnWifi = (Button)findViewById(R.id.btnWifi);

        iia = new ConnectionStatus(getApplicationContext());

        isConnected = iia.isConnectionAvailable();
        if (!isConnected) {
            btnWifi.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
                    Toast.makeText(getBaseContext(), "Please connect to a hotspot",
                            Toast.LENGTH_SHORT).show();
                }
            });
        }
        else {
            btnWifi.setVisibility(4);
            warning.setText("This app may use your mobile data to update events and get their details.");
        }
    }

在上面的代码中,如果结果为false,(因此没有互联网连接,用户将被带到Android wi-fi面板,在那里他被提示连接到Wi-Fi热点。