Bài 22: Permission trong Android

Trong lập trình Android nói riêng hay lập trình mobile nói chung khi mà bạn muốn tương tác gì đó từ thiết bị với bên ngoài , hoặc bạn muốn can thiệp vào sâu trong hệ thống của thiết bị thì bắt buộc bạn phải xin quyền người dùng mới được chứ bạn không thể nào tự động làm tất cả mọi thứ đâu nhé.

Trước đây android ở phiên bản nào đó mà ứng dụng có thể tự đông gửi tin nhắn đi mà không hiện thông báo lên cho người dùng, mình nhớ lúc đó rất nhiều người bị mất tiền oan ở các đầu số 87xx, 1 tin nhắn đến 15.000đ gì đó đấy chứ.

Và để bạn có thể gửi tin nhắn đi được bắt buộc bạn phải xin cấp quyền trong file AndroidMainifest.xml thì mới được, ở bài 6 mình có nói qua rồi bạn nên xem lại tí nhé để học bài này cho nó dễ.

Và kết thúc bài này chúng ta sẽ đi vào thực hành tiếp theo bài thực hành làm ứng dụng danh bạ, bữa trước chung ta chỉ dừng lại ở việc tạo danh bạ thôi đúng không nào, thì tiếp theo chúng ta sẽ làm có nó có thể gọi điện, nhắn tin được… các bạn quan tâm thì theo dõi ở blog nhé.

Vậy trong android có những quyền nào?

Trong android có 2 loại quyền chính đó là Permission thườngPermission nguy hiểm,  nếu từ phiên bản android 5.0 trở về trước thì thực chất 2 thằng này sẽ không khác nhau là bao nhiêu bởi vì nó đều được khai báo – xin quyền trong AndroidManifest.xml, tuy nhiên từ bản android 6.0 thì các lập trình viên phải xin quyền thằng này cả trong AndroidManifest và cả khi ứng dụng khởi chạy lên đối với những Permission nguy hiểm.

Permission thường

Là những Permission đơn giản, không can thiệp sâu vào trong hệ thống và bạn chỉ cần khai báo xin cấp quyền trong file AndroidManifest.xml, khi lập trình bạn sẽ không phải xin cấp quyền lần nào nữa.

Khi người dùng tải ứng dụng về bạn sẽ thấy google thông báo các quyền này lên bảo người dùng đồng ý và từ này về sau ứng dụng sẽ không hỏi thêm gì nữa, nó bao gồm các quyền như sau:

Permission nguy hiểm

Là những quyền thường can thiệp sâu vào hệ thống điện thoại Android như: đọc danh bạ, đọc tập tin, tải file… không đâu xa bạn thử tải phần mềm Zalo về thử xem, nó sẽ xin quyền đọc danh bạ của bạn để lấy ra các số điện thoại và từ đó gợi ý cho bạn những người quen của bạn.Nếu người không biết về lập trình sẽ thấy nó ghê gớm nhưng bản chất nó là như vậy, rất là đơn giản.

Thì những quyền này cũng phải khai báo hết trong AndroidManifest như trên thôi tuy nhiên từ android 6.0 trở đi bạn phải xin thêm quyền nó khi ứng dụng khởi chạy nữa.Nếu không xin quyền được thì khi bạn làm gì đó đụng đến thì sẽ xảy ra lỗi ngay.

Ví dụ download tấm ảnh về lưu vào thẻ nhớ/máy là phải xin quyền ghi file (WRITE_EXTERNAL_STORAGE).

Chi tiết bạn đọc thêm ở bài viết xin quyền Permisson android trên Marshmallow 6.0 tại blog mình nhé.

Vậy những quyền nào là quyền nguy hiểm bạn nhìn xuống dưới đây nhé:

Permisson nguy hiểm trong android

Permisson nguy hiểm trong android

Xin quyền trong android như thế nào?

Từ android 5.0 trở xuống

Chỉ đơn giản là bạn sẽ đoán xem ứng dụng của bạn sẽ dụng đến quyền gì mà biết để bạn thêm vào trong file AndroidManifest thôi chứ chẳng có gì khó khăn cả.

Ví dụ bây giờ bạn làm một ứng dụng nghe nhạc online thì sẽ biết ngay là bạn phải xin quyền kết nối internet và quyền ghi và đọc file để trường hợp bạn hiển thị những bài hát trong điện thoại lên hoặc là khi tải bài hát xuống thiết bị.Vậy bạn sẽ xin quyền như sau:

AndroidManifest.xml


Nếu như bây giờ bạn không khai báo quyền truy cập internet thì khi ứng dụng bạn tiến hành tải app thì sẽ xảy ra một lỗi như sau, tương tự các quyền khác cũng thông báo dạng như vậy, lúc này ứng dụng sẽ bị crash ngay lập tức.


Vậy thôi, như thế là ứng dụng bạn có thể thoải mái dùng rồi dù là quyền bình thường hay quyền nguy hiểm thì với Android Lolipop 5.0 trở xuống bạn chỉ cần khi báo vậy là xong, còn nếu bạn muốn ứng dụng bạn chạy được trên máy android 6.0 trở lên thì bạn phải xem tiếp ở phía dưới.

Từ android 6.0 trở lên

Ở ví dụ trên có 2 quyền nằm trong quyền nguy hiểm đó là quyền đọc và ghi file chính vì thế khi chạy ứng dụng trên thiết bị android 6.0 Marshmallow  trở lên sẽ xảy ra lỗi nếu như bạn chỉ xin cấp quyền ở trong file AndroidManifest mà thay vào đó bạn phải xin lại quyền trong lúc run time nghĩa là khi ứng dụng khởi chạy và chỉ cần xin 1 lần duy nhất thôi nhé các bạn.

Để xin quyền khi run time cho android 6.0 bạn sẽ thêm chi tiết bài hướng dẫn của mình ở đây vì nó cũng khá là dài luôn đó, không khó lắm nên các bạn cứ iên tâm.Quyền này sẽ có dạng thông báo như sau khi các bạn khởi động app:

Xin cấp quyền trên android 6.0 Marshmallow

Xin cấp quyền trên android 6.0 Marshmallow

Về quyền thì cơ bản chỉ có vậy thôi, trong video bên dưới mình sẽ nói rõ hơn tí cho các bạn hiểu, và mọi ý kiến thắc mắc xin các bạn cứ comment bên dưới blog mình nhé.

Video giới thiệu Permission trong android


Chúc các bạn học tập vui vẽ!

Xem thêm

Bài 22: Permission trong Android
5 (100%) 1 vote

Add Comment

*