国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android 對手機網(wǎng)絡(luò)的檢測和監(jiān)聽的方法示例

2019-12-12 01:05:37
字體:
供稿:網(wǎng)友

此次分享內(nèi)容

使用BroadcastReceiver廣播接收器來接收網(wǎng)絡(luò)狀態(tài)(采用系統(tǒng)廣播)

BroadcastReceiver作為Android四大組件之一;
Android:BroadcastReceiver廣播接收器最全面解析

網(wǎng)絡(luò)權(quán)限

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

自定義廣播接收器

public class NetWorkStateReceiver extends BroadcastReceiver {  @Override  public void onReceive(Context context, Intent intent) {    System.out.println("網(wǎng)絡(luò)狀態(tài)發(fā)生變化");    //檢測API是不是小于23,因為到了API23之后getNetworkInfo(int networkType)方法被棄用    if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP) {      //獲得ConnectivityManager對象      ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);      //獲取ConnectivityManager對象對應(yīng)的NetworkInfo對象      //獲取WIFI連接的信息      NetworkInfo wifiNetworkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);      //獲取移動數(shù)據(jù)連接的信息      NetworkInfo dataNetworkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);      if (wifiNetworkInfo.isConnected() && dataNetworkInfo.isConnected()) {        Toast.makeText(context, "WIFI已連接,移動數(shù)據(jù)已連接", Toast.LENGTH_SHORT).show();      } else if (wifiNetworkInfo.isConnected() && !dataNetworkInfo.isConnected()) {        Toast.makeText(context, "WIFI已連接,移動數(shù)據(jù)已斷開", Toast.LENGTH_SHORT).show();      } else if (!wifiNetworkInfo.isConnected() && dataNetworkInfo.isConnected()) {        Toast.makeText(context, "WIFI已斷開,移動數(shù)據(jù)已連接", Toast.LENGTH_SHORT).show();      } else {        Toast.makeText(context, "WIFI已斷開,移動數(shù)據(jù)已斷開", Toast.LENGTH_SHORT).show();      }//API大于23時使用下面的方式進行網(wǎng)絡(luò)監(jiān)聽    }else {      System.out.println("API level 大于23");      //獲得ConnectivityManager對象      ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);      //獲取所有網(wǎng)絡(luò)連接的信息      Network[] networks = connMgr.getAllNetworks();      //用于存放網(wǎng)絡(luò)連接信息      StringBuilder sb = new StringBuilder();      //通過循環(huán)將網(wǎng)絡(luò)信息逐個取出來      for (int i=0; i < networks.length; i++){        //獲取ConnectivityManager對象對應(yīng)的NetworkInfo對象        NetworkInfo networkInfo = connMgr.getNetworkInfo(networks[i]);        sb.append(networkInfo.getTypeName() + " connect is " + networkInfo.isConnected());      }      Toast.makeText(context, sb.toString(),Toast.LENGTH_SHORT).show();    }  }}

注冊廣播

  1. 動態(tài)注冊
  2. 靜態(tài)注冊

動態(tài)注冊

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();    }    IntentFilter filter = new IntentFilter();    filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);    registerReceiver(netWorkStateReceiver, filter);    System.out.println("注冊");    super.onResume();  }  //onPause()方法注銷  @Override  protected void onPause() {    unregisterReceiver(netWorkStateReceiver);    System.out.println("注銷");    super.onPause();  }}

靜態(tài)注冊

在AndroidManifest.xml進行廣播的靜態(tài)注冊

<receiver android:name=".NetWorkStateReceiver">   <intent-filter> //檢測網(wǎng)絡(luò)變化的acton    <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>     <category android:name="android.intent.category.DEFAULT" />   </intent-filter> </receiver> 

至此,今天分享完畢,這樣就可以實現(xiàn)對網(wǎng)絡(luò)狀態(tài)的實時監(jiān)聽了

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 鱼台县| 东莞市| 铁力市| 恩平市| 双桥区| 商南县| 古丈县| 马尔康县| 佳木斯市| 兴城市| 繁峙县| 北碚区| 本溪市| 剑阁县| 怀来县| 会理县| 襄垣县| 浮梁县| 郁南县| 拉萨市| 河津市| 尚志市| 德兴市| 曲靖市| 南充市| 五华县| 柳江县| 凤阳县| 涡阳县| 井冈山市| 津南区| 霍城县| 比如县| 延津县| 莱州市| 察哈| 文成县| 绥江县| 泽州县| 海盐县| 湘潭市|