Hướng dẫn kiểm tra trạng thái kết nối internet trong android

Hướng dẫn kiểm tra trạng thái kết nối internet trong android

kiem-tra-trang-thai-ket-noi-internet-trong-android-5
Hướng dẫn Android

Hướng dẫn kiểm tra trạng thái kết nối internet trong android

Kiểm tra trạng thái kết nối internet trong ứng dụng android thì rất dễ dàng. Trong bài viết hướng dẫn kiểm tra trạng thái kết nối internet trong android, bạn sẽ học được cách làm thế nào để kiểm tra thiết bị android đã kết nối internet hay chưa.

Kiểm tra trạng thái kết nối internet trong android – Tạo project

1. Tạo một project trong Android Studio sử dụng File -> New -> New Project -> nhập tên ứng dụng, lựa chọn nơi chứa project –> Next

Chọn “Phone and Table“, chọn Minimum SDKAPI 22 -> Next

kiểm tra trạng thái kết nối internet trong android

Chọn “Empty Activity-> Next -> Finish

kiem-tra-trang-thai-ket-noi-internet-trong-android-1

2. Tạo một lớp tên WifiApp và kế thừa từ lớp Application. Lớp này sẽ được gọi khi ứng dụng chạy.

Chuột phải package -> New -> Java Class -> nhập WifiApp tại Name -> OK

Full code của WifiApp.java

import android.app.Application;
/**
 * Created by http://giasutinhoc.vn
 */
public class WifiApp extends Application {
    static WifiApp wifiInstance;
    @Override
    public void onCreate() {
        super.onCreate();
        wifiInstance = this;
    }
    public static synchronized WifiApp getInstance() {
        return wifiInstance;
    }
}

3. Tạo một lớp khác tên ConnectionReceiver và kế thừa từ lớp BroadcastReceiver. Lớp này có nhiệm vụ thông báo trạng thái kết nối internet của thiết bị Android

Chuột phải package -> New -> Java Class -> nhập ConnectionReceiver tại Name -> OK

Full code của ConnectionReceiver .java

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
/**
 * Created by http://giasutinhoc.vn
 */
public class ConnectionReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
    }
    public static boolean isConnected() {
        ConnectivityManager
                cm = (ConnectivityManager) WifiApp.getInstance().getApplicationContext()
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo ni = cm.getActiveNetworkInfo();
        return ni != null && ni.isConnectedOrConnecting();
    }
}

4. Mở app/manifests/AndroidManifest.xml

Bổ sung quyền truy cập internet và kiểm tra trạng thái mạng cho ứng dụng

kiem-tra-trang-thai-ket-noi-internet-trong-android-2

Thêm WifiApp trong thẻ <application>

kiem-tra-trang-thai-ket-noi-internet-trong-android-3

Thêm ConnectionReceiver trước </application>

kiem-tra-trang-thai-ket-noi-internet-trong-android-4

5.  Mở app/res/layout/activity_main.xml và thiết kế layout cho ứng dụng (Sử dụng một Button và một ImageView)

kiem-tra-trang-thai-ket-noi-internet-trong-android-5

6. Mở app/java/advanced.android/MainActivity.java và bổ sung đoạn code màu đỏ

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    // Viết xử lý cho button "Kiểm tra trạng thái kết nối internet"
    public void check(View view) {
        boolean ret = ConnectionReceiver.isConnected();
        String msg;
        if (ret == true) {
            msg = "Thiết bị đã kết nối internet";
        } else {
            msg = "Thiết bị chưa kết nối internet";
        }
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
    }
}

7. Build và run, bạn sẽ nhìn thấy kết quả như hình

Trường hợp thiết bị chưa kết nối internet và người dùng chạm vào button “Kiểm tra trạng thái kết nối internet

kiem-tra-trang-thai-ket-noi-internet-trong-android-6

Trường hợp ngược lại

kiem-tra-trang-thai-ket-noi-internet-trong-android-7
Alert: You are not allowed to copy content or view source !!