Hướng dẫn tạo ứng dụng kiểm tra kết nối Internet trên Android

09:55:01 - 30/03/2018 - admin

Khi lập trình ứng dụng trên nền tảng Android thì lập trình viên có thể kết nối internet để đồng bộ các dữ liệu ngoài việc cung cấp quyền quản trị dữ liệu cho web, app thì bạn nên kiểm tra kết nối internet trên thiết bị có đang hoạt động hay không ( Kiểm tra về phần kết nối 3g và wifi). Nếu như phần này kiểm tra vẫn kết nối tốt thì bạn tiếp tục với công việc của mình còn nếu không kết nối được thì sẽ thông báo cho người dùng để người dùng biết lỗi không kết nối để tránh mất thời gian cho người sử dụng.

Trong bài viết này mình sẽ hướng dẫn các bạn làm một bài thực hành nhỏ hướng dẫn về cách kiểm tra kết nối internet dành cho thiết bị đang sử dụng. Bài viết này thuộc hệ thống seri bài viết về tài liệu lập trình android của chúng tôi kết với bên công ty đào tạo lập trình viên https://www.devpro.edu.vn/.

Nào cùng bắt đầu nha. Bước 1 các bạn tạo 1 project mới và nhớ đặt tên cho nó nhé. Mình đặt tên là Devpro_Check_Network MainActivity dạng EmptyActivity.

Trước tiên bạn tạo giao diện MainActivity tại activity_main.xml và có thêm 1 nút button để khi nhấn vào nút sẽ gọi code kiểm tra xem máy có còn kết nối internet hay không và nó đưa ra thông báo.

Đoạn code như sau:

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:orientation=”vertical”
android:gravity=”center”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:paddingBottom=”@dimen/activity_vertical_margin”
android:paddingLeft=”@dimen/activity_horizontal_margin”
android:paddingRight=”@dimen/activity_horizontal_margin”
android:paddingTop=”@dimen/activity_vertical_margin”
tools:context=”com.example.dong.devpro_check_network.MainActivity”>

<Button
android:id=”@+id/btncheckNetWork”
android:text=”Kiểm tra kết nối mạng”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />
</LinearLayout>

Sau đó các bạn tạo một Custom Dialog để hiển thị ra thông báo là thiết bị đang được kết nối hoặc không được kết nối. Để tạo file thì bạn tạo 1 file XML có chứa giao diện Dialog gồm có ImageView để có thể hiển thị ra icon và đưa ra TextView (Cái này là dòng chữ thông báo) và một nút button OK để tắt Dialog ở đây mình tạo file là: Custom_dialog.xml

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:orientation=”vertical”
android:gravity=”center”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:paddingBottom=”@dimen/activity_vertical_margin”
android:paddingLeft=”@dimen/activity_horizontal_margin”
android:paddingRight=”@dimen/activity_horizontal_margin”
android:paddingTop=”@dimen/activity_vertical_margin”
tools:context=”com.example.dong.devpro_check_network.MainActivity”>

<Button
android:id=”@+id/btncheckNetWork”
android:text=”Kiểm tra kết nối mạng”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />
</LinearLayout>

Tiếp đến bạn tạo ra 1 class có tên gọi là ViewDialog và cấu hình Dialog đó cho file XML vừa tạo và tùy chỉnh nội dung Dialog đó hiện ra màn hình theo ý muốn

<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:orientation=”vertical”
android:gravity=”center”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:paddingBottom=”@dimen/activity_vertical_margin”
android:paddingLeft=”@dimen/activity_horizontal_margin”
android:paddingRight=”@dimen/activity_horizontal_margin”
android:paddingTop=”@dimen/activity_vertical_margin”
tools:context=”com.example.dong.devpro_check_network.MainActivity”>

<Button
android:id=”@+id/btncheckNetWork”
android:text=”Kiểm tra kết nối mạng”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content” />
</LinearLayout>

Trong đó a và b là 2 hình ảnh đưa ra thông báo tương ứng ta để nó trong mục res/drawble

File cuối cùng cần tạo đó là MainActivity để giúp ta kiểm tra kết nối mạng của thiết bị và sử dụng Dialog vừa tạo đưa ra thông báo nhấn nút vào Button trên activity.xml

public class MainActivity extends AppCompatActivity {
Button btncheckNetWork;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();

}
private void initView(){
btncheckNetWork = (Button)findViewById(R.id.btncheckNetWork);
btncheckNetWork.setOnClickListener(CheckNetWork_Click);
}
View.OnClickListener CheckNetWork_Click = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isConnected() == true) {
ViewDialog viewDialog = new ViewDialog();
viewDialog.showDialog(MainActivity.this, “Thiết bị của bạn đã kết nối Internet”,1);

} else {
ViewDialog viewDialog = new ViewDialog();
viewDialog.showDialog(MainActivity.this, “Thiết bị của bạn không được kết nối Internet \n hãy kết nối wifi hoặc 3g và thử lại”,2);
}
}
};

public boolean isConnected() {
ConnectivityManager cm =
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
return true;
}
return false;
}
}

Trong đoạn code trên mình có tạo các phương thức isConnected() nó có tác dụng kiểm tra kết nối mạng của máy đồng thời đưa ra các giá trị boolean là true hoặc false. Nếu là True thì có nghĩa là máy đang có kết nối với internet còn nếu là flase thì nghĩa là máy không có kết nối internet và nó văng ra dialog

Nếu isConnected() là true

//Khởi tạo dialog
ViewDialog viewDialog = new ViewDialog();
// Truyền vào giá trị cho dialog hiện ra
viewDialog.showDialog(MainActivity.this, “Thiết bị của bạn đã kết nối Internet”,1);

Nếu isConnected() là false cũng tương tự:

ViewDialog viewDialog = new ViewDialog();
viewDialog.showDialog(MainActivity.this, “Thiết bị của bạn không được kết nối Internet \n hãy kết nối wifi hoặc 3g và thử lại”,2);

Trước khi hoàn thành để sử dụng kết nối mạng ta cấp quyền truy cập internet cho ứng dụng mới tạo bằng việc sử dụng file AndroidManifest.xml và thêm câu lệnh

<usespermission android:name=“android.permission.ACCESS_NETWORK_STATE” />

Khi máy ảo tắt dữ liệu di động và wifi:

Khi máy ảo có bật dữ liệu di động và wifi:

Như vậy là đã xong các bạn có thể làm theo thực hành nha.

Ý kiến bạn đọc

Bình luận qua Disqus Facebook