我想对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"/>
好了,现在就可以监听网络状态的变化啦~
如下即是效果图:

