如何在Android中对手机网络进行检测

  介绍

本篇文章为大家展示了如何在Android中对手机网络进行检测,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

如何在Android中对手机网络进行检测“> <br/> </p> <p>使用BroadcastReceiver广播接收器来接收网络状态(采用系统广播)</p> <p>网络权限<br/> </p> <pre类= & lt; uses-permission  Android: name=癮ndroid.permission.ACCESS_NETWORK_STATE"/比;   & lt; uses-permission  android: name=癮ndroid.permission.INTERNET"/祝辞

自定义广播接收器

public  class  NetWorkStateReceiver  extends  BroadcastReceiver  {   @Override才能   public 才能;void  onReceive (Context 上下文,Intent 意图),{      ,,,System.out.println(“网络状态发生变化“);   ,,,//检测API是不是小于23日,因为到了API23之后getNetworkInfo (int  networkType)方法被弃用   ,,,if  (android.os.Build.VERSION.SDK_INT  & lt;, android.os.Build.VERSION_CODES.LOLLIPOP), {      ,,,,,//获得ConnectivityManager对象   ,,,,,ConnectivityManager  connMgr =, (ConnectivityManager), context.getSystemService (Context.CONNECTIVITY_SERVICE);      ,,,,,//获取ConnectivityManager对象对应的NetworkInfo对象   ,,,,,//获取无线连接的信息   ,,,,,NetworkInfo  wifiNetworkInfo =, connMgr.getNetworkInfo (ConnectivityManager.TYPE_WIFI);   ,,,,,//获取移动数据连接的信息   ,,,,,NetworkInfo  dataNetworkInfo =, connMgr.getNetworkInfo (ConnectivityManager.TYPE_MOBILE);   ,,,,,if  (wifiNetworkInfo.isConnected (),,,, dataNetworkInfo.isConnected ()), {   ,,,,,,,Toast.makeText(上下文,“无线已连接,移动数据已连接,,,Toast.LENGTH_SHORT),告诉();   ,,,,,},else  if  (wifiNetworkInfo.isConnected (),,,, ! dataNetworkInfo.isConnected ()), {   ,,,,,,,Toast.makeText(上下文,“无线已连接,移动数据已断开“,,Toast.LENGTH_SHORT),告诉();   ,,,,,},else  if  (! wifiNetworkInfo.isConnected (),,,, dataNetworkInfo.isConnected ()), {   ,,,,,,,Toast.makeText(上下文,“无线已断开,移动数据已连接,,,Toast.LENGTH_SHORT),告诉();   ,,,,,},{else    ,,,,,,,Toast.makeText(上下文,“无线已断开,移动数据已断开“,,Toast.LENGTH_SHORT),告诉();   ,,,,,}//API大于23时使用下面的方式进行网络监听   ,,,}else  {      ,,,,,System.out.println (“API  level 大于23日“);   ,,,,,//获得ConnectivityManager对象   ,,,,,ConnectivityManager  connMgr =, (ConnectivityManager), context.getSystemService (Context.CONNECTIVITY_SERVICE);      ,,,,,//获取所有网络连接的信息   ,,,,,网络[],networks =, connMgr.getAllNetworks ();   ,,,,,//用于存放网络连接信息   ,,,,,StringBuilder  sb =, new  StringBuilder ();   ,,,,,//通过循环将网络信息逐个取出来   ,,,,,for  (int  i=0,小姐:& lt;, networks.length;,我+ +){   ,,,,,,,//获取ConnectivityManager对象对应的NetworkInfo对象   ,,,,,,,NetworkInfo  NetworkInfo =, connMgr.getNetworkInfo(网络[我]);   ,,,,,,,sb.append (networkInfo.getTypeName (), +,“, connect  is “, +, networkInfo.isConnected ());   ,,,,,}   ,,,,,Toast.makeText(上下文,sb.toString (), Toast.LENGTH_SHORT),告诉();   ,,,}   ,,}   }

注册广播

<李>

动态注册

<李>

静态注册

动态注册

public  class  MainActivity  extends  AppCompatActivity  {      NetWorkStateReceiver 才能;netWorkStateReceiver;      @Override才能   protected 才能;void  onCreate (Bundle  savedInstanceState), {   ,,,super.onCreate (savedInstanceState);   ,,,setContentView (R.layout.activity_main);   ,,}//才能在onResume()方法注册   @Override才能   protected 才能;void  onResume (), {   ,,,if  (netWorkStateReceiver ==, null), {   ,,,,,netWorkStateReceiver =, new  NetWorkStateReceiver ();   ,,,}   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在Android中对手机网络进行检测