Monday, May 12, 2014

Kiểm tra trạng thái mạng Android (network state checking)

Trong lập trình giao tiếp mạng trên Android thì việc kiểm tra sự sẵn sàng của khả năng kết nối mạng (Wifi, 3g), GPS là cần thiết.

Screenshot_2014-05-12-10-31-47 Screenshot_2014-05-12-10-31-56 Screenshot_2014-05-12-10-32-05 Screenshot_2014-05-12-10-32-12

Việc kiểm tra này cũng rất nhẹ nhàng bởi Android cung cấp cho chúng ta nhiều thư viện để kiểm tra các loại kết nối và cấu hình kết nối.

Tuy nhiên, ứng dụng cần phải có quyền kiểm tra trạng thái kết nối và sử dụng kết nối.

1 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
2 <uses-permission android:name="android.permission.INTERNET" />
3 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


Đối tượng ConnectivityManager và NetworkInfo là đối tượng chính giúp chúng ta kiểm tra trạng thái mạng



1 ConnectivityManager conManager = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE);
2 NetworkInfo _wifi = conManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
3 NetworkInfo _3g = conManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
Sau đó chúng ta có thể gọi hộp thoại bật wifi hay 3g để mở mạng nếu chưa có


1 if(!_wifi.isAvailable()&&!_3g.isAvailable())
2 {
3 showNetworkSettingsAlert();
4 }

Nội dung hàm hiển thị hộp thoại như sau


1 public void showNetworkSettingsAlert() {
2 AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
3 alertDialog.setTitle("C?u hình m?ng");
4 alertDialog.setMessage("Chua b?t k?t n?i m?ng.\nDi chuy?n d?n giao di?n c?u hình?");
5 alertDialog.setPositiveButton("C?u hình",
6 new DialogInterface.OnClickListener() {
7 public void onClick(DialogInterface dialog, int which) {
8 Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);
9 MainActivity.this.startActivity(intent);
10 }
11 });
12 alertDialog.setNegativeButton("B? qua",
13 new DialogInterface.OnClickListener() {
14 public void onClick(DialogInterface dialog, int which) {
15 dialog.cancel();
16 }
17 });
18 alertDialog.show();
19 }

Thử xem sao nhe ! good luck

No comments:

Post a Comment

Translate