我想对Android手机进行wifi、gprs等网络连接状态进行访问,这里用到的知识点:
BroadcastReciever:BroadcastReciever是安卓中四大组件之一。为了方便与进行系统级别的消息通知,Android引入了一套类似的广播消息机制。当一个地方发送广播的时候,只要收听这个广播的广播接收器都可以接收到这个广播。
    第一步:
定义一个继承于BroadcastReciever基类的接受器,重写onRecieve()方法;
    第二步:
注册BroadcastReciever
    第三部:
发送广播

具体看代码~:

自定义广播接收器
public class MyBroadcastReciever extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        //判断是否连接的标志
        boolean success = false;
        //获取网络连接管理器
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        //获取WiFi网络连接状态
        NetworkInfo.State state = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
        //判断是否正在使用WiFi网络
        if(state == NetworkInfo.State.CONNECTED){
            success = true;
            Toast.makeText(context, "Wifi已连接~", Toast.LENGTH_SHORT).show();
        }
        //获取GPRS网络连接状态
        state = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
        //判断是否正在使用GPRS网络
        if(state == NetworkInfo.State.CONNECTED){
            success = true;
            Toast.makeText(context, "GPRS已连接~", Toast.LENGTH_SHORT).show();
        }
        if(!success){
            Toast.makeText(context, "无网络连接!", Toast.LENGTH_SHORT).show();
        }
    }
}

MainActivity代码:


public class MainActivity extends AppCompatActivity {

    private MyBroadcastReciever mBroadcastReciever;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //创建意图过滤器对象
        IntentFilter intentFilter = new IntentFilter();
        //给创建的意图过滤器对象指定action动作,来指明将来的广播接受者接受广播的类型
        intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
        //创建广播接收器
        mBroadcastReciever = new MyBroadcastReciever();
        //动态注册
        registerReceiver(mBroadcastReciever,intentFilter);
        //创建意图对象,并指明action,那么意图过滤器与这个action匹配的广播接收器会收到这个广播
        Intent intent = new Intent();
        //intent.setAction("com.ontime.abc");

        //发送广播
        sendBroadcast(intent);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //activity销毁的时候,取消广播接受器的注册
        unregisterReceiver(mBroadcastReciever);
    }
}

注意:
Android 开发中经常要判断网络连接是否可用,因此经常有必要监听网络状态的变化
1:意图过滤器的action:

<action"android.net.conn.CONNECTIVITY_CHANGE"/>
2: 权限:

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


好了,现在就可以监听网络状态的变化啦~
如下即是效果图:监听手机WiFi、GPRS等网络连接状态监听手机WiFi、GPRS等网络连接状态监听手机WiFi、GPRS等网络连接状态

相关文章: