Android 网络连接——ConnectivityManager网络管理器

  现在有一种现象就是很多人玩手机是“走到哪,玩到哪”,那么我们为什么喜欢玩手机,如果没有网络,还会这样么?
  如果手机不能联网,那手机对我们的吸引力恐怕就会大大下降了,手机联网才有吸引力,作为开发者的我们怎么能不会网络连接呢,今天我们就来学习一下Android的网络连接。
  学习网络连接之前我们先要学习如何获得手机联网的信息,如果我们连手机使用的哪种网络连接都不清楚,如何做开发。
   
  ConnectivityManager,连接管理器,看名字就很清楚了,ConnectivityManager是用来管理手机的网络连接的。通过这个类我们可以获得我们手机联网的相关信息和网络变化等…下面我们来看看ConnectivityManager是如何使用的。

ConnectivityManager基础

  学习一个知识最终要的就是思路啦,我们通过步骤理清思路,学习一下ConnectivityManager的使用。
1. 获得ConnectivityManager的对象。我们通过Context.getSystemService(Context.CONNECTIVITY_SERVICE)来获得。

ConnectivityManager manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

2. 通过ConnectivityManager对象调用getActiveNetworkInfo()方法来获得NetworkInfo对象,NetworkInfo对象包含的手机网络的信息。

NetworkInfo networkInfo = manager.getActiveNetworkInfo();

3. 通过NetworkInfo对象的相关方法获得我们想要得到的手机网络的信息。注意:我们在获得调用NetworkInfo 对象的方法是我们首先要判断,NetworkInfo对象非空且网络已连接。
  NetworkInfo的方法有很多,我们看几个常用的方法:
这里写图片描述

  • getType():获得网络连接的类型,返回值主要有:TYPE_MOBILE, TYPE_WIFI, TYPE_WIMAX, TYPE_ETHERNET, TYPE_BLUETOOTH,或者其他被ConnectivityManager网络管理器定义的网络连接类型。
  • getTypeName ():返回网络连接类型的名字。
  • isAvailable ():判断连接是否可用,如果网络可用,返回true;否则返回false。
  • isConnected ():判断网络连接是否存在。

ConnectivityManager实例讲解

  我们现在通过点击按钮Button来获得我们联网的信息,并将手机网罗连接的类型显示在界面上。
布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/textview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="网络连接情况" />

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="获得网络连接的情况" />
</LinearLayout>

Activity:

public class MainActivity extends Activity implements View.OnClickListener {
    private Button mButtonNetInfo;//定义按钮
    private TextView mTextViewInfo;//定义显示信息的文本
    //定义网络连接的管理器
    private ConnectivityManager mManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mButtonNetInfo = (Button) findViewById(R.id.button);
        mTextViewInfo = (TextView) findViewById(R.id.textview);
        //获得网络管理器的对象
        mManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        //点击事件
        mButtonNetInfo.setOnClickListener(this);     

    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.button:
                getNetInfo();//调用获得信息的方法
                break;
            default:
                break;
        }
    }    
    private void getNetInfo() {
        String type = "";
        NetworkInfo networkInfo = mManager.getActiveNetworkInfo();//或的网络连接信息的对象
        //判断NetworkInfo对象是否非空,以及网络是否连接
        if (networkInfo != null && networkInfo.isConnected()) {
        //如果网络连接,则弹出“网络连接”弹窗。
            Toast.makeText(getApplicationContext(), "网络连接", Toast.LENGTH_SHORT).show();
            //获得网络连接的类型
            type = networkInfo.getTypeName();
            mTextViewInfo.setText("网络连接形式为:" + type);
        } else {
        //如果无网络连接,则弹出“无网络连接”弹窗。
            Toast.makeText(getApplicationContext(), "无网络连接", Toast.LENGTH_SHORT).show();
            mTextViewInfo.setText("无网络连接");
        }
    }
}

让我们来看结果:

这里写图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小_爽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值