Sử dụng thư viện Dexter để quản lý Runtime Permissions trong Android

Tram Ho

Chúng ta đều biết rằng Android Marshmallow đã giới thiệu runtime permissions cho phép người dùng cho phép hoặc từ chối mọi quyền trong thời gian chạy.

Trong bài viết này, chúng ta sẽ đơn giản hóa việc xin quyền sử dụng các permission bằng cách sử dụng thư viện Dexter.
Sử dụng thư viện này, các permission sẽ được thực hiện chỉ trong vài phút.

1. Sử dụng thư viện Dexter

Để sử dụng thư viện Dexter, thêm dependency vào app/build.gradle của project :

1.1 Request một Permission

Để request một permission, bạn có thể dùng hàm withPermission() bằng cách truyền vào permission cần yêu cầu.
Bạn cũng cần callback PermissionListener để nhận về trạng thái của permission.

> onPermissionGranted() sẽ được gọi sau khi permission được cấp phép.
> onPermissionDenied() sẽ được gọi khi permission bị từ chối.
Bạn có thể kiểm tra xem permission đó có bị từ chối vĩnh viễn hay không bằng cách sử dụng điều kiện answer.isPternalDenied().

Đoạn code sau sẽ yêu cầu sử dụng permission CAMERA :

1.2 Request nhiều Permission

Để request nhiều permission cùng một lúc, bạn có thể sử dụng hàm withPermissions().

Đoạn code sau sẽ yêu cầu sử dụng permission STORAGELOCATION :

1.3 Xử lí lỗi xảy ra

2. Tạo Projetc mới

1. Android Studio ⇒ File ⇒ New Project ⇒ Basic Activity

  1. Thêm thư viện Dexter vào file build.gradle

  1. Mở layout của Main Activity : activity_main.xmlcontent_main.xml

content_main.xml

  1. MainActivity.java

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo