您的位置:首页 > 理论基础 > 计算机网络

Android检测网络连接

2015-12-27 14:55 513 查看
Android检测网络连接

在Android中我们可以用ConnectivityManage来获取网络连接的相关状态;

~获取连接名称

public String getTypeName()

获取连接是否可用

public boolean isAvailable();

获取连接是否连接

public boolean isConnected();

获取连接状态

public State getState()

记住权限一定要添加哦。。。。。

[code]<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>


一定要分清“可用”与“已连接”

-可用:是硬件设备支持网络连接,并且可以使用;

-已连接:已通过该方式连入到网络当中;

Model与Wifi不可同时使用,一般wifi会优先使用。(大家在日常生活中,wifi连接时,移动网络就失效,系统就关闭移动网络的连接了!)

[code]public class MainActivity extends Activity implements OnClickListener {
    Button button, button1;
    ConnectivityManager cn;
    private TextView text = null;
    WifiManager wifi;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //通过ConnectivityManager连接网络相关状态
         cn= (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
        text = (TextView) findViewById(R.id.texzt);
        button = (Button) findViewById(R.id.button1);
        button1 = (Button) findViewById(R.id.button2);
        button.setOnClickListener(this);
    }
    @Override
    public void onClick(View view) {
        // TODO Auto-generated method stub
        //getActiveNetworkInfo获取可用连接状态
        //NetworkInfo info2 = cn.getActiveNetworkInfo();
        //getNetWorkInfo获取指定连接,这里是WIFI
        //NetworkInfo info = cn.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
        NetworkInfo[] info = cn.getAllNetworkInfo();
        //获取网络连接信息,放到一个数组中

        if (info != null) {
            Toast.makeText(MainActivity.this, "当前网络可用", Toast.LENGTH_LONG).show();

            for (int i = 0; i < info.length; i++) {
                text.append("\n现在连接类型"+info[i].getTypeName()+"\t状态:"+info[1].getState()+"\n");
                //getState为获取当前连接状态,getTypeName获取连接类型名称,WIFI连接时返回wifi,移动网络时返回mobile
                if (info[i].isConnected()) {
                    text.append("可以连接");
                }else {
                    text.append("没有连接");
                }
            }
            //text.setText("现在可以连接网络,类型:"+info.getTypeName()+info.getState()+"\n"+info2.getState());

        }else {
            Toast.makeText(this, "当前没有可用网络", Toast.LENGTH_LONG).show();
        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: