獲取當前網絡狀態


在我們寫程序中經常會遇到需要顯示當前網絡狀態

首先我們在xml文件中定義兩個TextView來顯示當前移動網絡的狀態和WiFi的狀態

代碼為

 1 <TextView
 2         android:id="@+id/wifi"
 3         android:textSize="20sp"
 4         android:layout_width="wrap_content"
 5         android:layout_height="wrap_content"
 6         android:text="顯示網絡狀態!"
 7         android:layout_alignParentTop="true"
 8         android:layout_alignLeft="@+id/gprs"
 9         android:layout_alignStart="@+id/gprs"
10         android:layout_marginTop="69dp" />
11     <TextView
12         android:id="@+id/gprs"
13         android:textSize="20sp"
14         android:layout_width="wrap_content"
15         android:layout_height="wrap_content"
16         android:text="顯示網絡狀態!"
17         android:layout_alignParentBottom="true"
18         android:layout_centerHorizontal="true"
19         android:layout_marginBottom="209dp" />

接下來是初始化控件

1 private TextView wifi = (TextView) findViewById(R.id.wifi);       
2 private TextView gprs = (TextView) findViewById(R.id.gprs);

然后是初始化網絡管理器

1 private ConnectivityManager connectivityManager = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);

獲得移動網絡狀態

1 NetworkInfo.State grasState = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();

獲得WiFi狀態

1 NetworkInfo.State wifiState = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();

把狀態放在TextView中顯示

1 wifi.setText("wifi的鏈接狀態是" + wifiState.toString());
2 gprs.setText("移動網絡連接狀態是" + grasState.toString());

一般應用程序是在無網絡連接時會跳轉到無線網絡設置

首先添加一個內部類用來實現無網絡時的操作

1 class MyTask extends TimerTask {
2         @Override
3         //隱式跳轉到無線網絡設置
4         public void run() {
5             Intent i = new Intent();
6             i.setAction(Settings.ACTION_WIRELESS_SETTINGS);
7             startActivity(i);
8         }

然后在判斷是否時無網絡連接,在5秒后執行跳轉操作

1 if (!grasState.toString().equals("CONNECTED") && !wifiState.toString().equals("CONNECTED")) {
2             Toast.makeText(MainActivity.this, "您的網絡未連接,稍后將跳轉到網絡設置", Toast.LENGTH_SHORT).show();
3             //定時器,延時5分鍾執行
4             Timer time = new Timer();
5             time.schedule(new MyTask(), 5000);
6         }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM