Tôi có nên yêu cầu mỗi người dùng cho người dùng requestPermissions
không?
Trước tiên khi sử dụng requestPermission?
requestPermission chỉ gọi sau checkSelfPermission khi phương thức này không trả lại PERMISSION_GRANTED
.
Bạn có thể tìm thấy list of permission mà Android M yêu cầu trong thời gian chạy. Mỗi quyền trong số này là một phần của nhóm Quyền. WRITE_EXTERNAL_PERMISSION
là từ android.permission-group.STORAGE
và ACCESS_COARSE_LOCATION
/ACCESS_FINE_LOCATION
là từ android.permission-group.LOCATION
.
Nếu người dùng cho phép truy cập vào ví dụ cho phép ACCESS_COARSE_LOCATION
- thì Android sẽ tự động cấp quyền truy cập của nhóm quyền này -i.e. permission-group.LOCATION
-. Vì vậy, nếu sau này bạn checkSelfPermission
cho ACCESS_FINE_LOCATION
, bạn sẽ nhận được PackageManager.PERMISSION_GRANTED
.
Nếu bạn gặp sự cố, điều đó có nghĩa là bạn đã cố gắng gọi, ví dụ LocationServices.FusedLocationApi.requestLocationUpdates
trước khi yêu cầu từ người dùng, vị trí nhóm quyền.
Edit:
Đừng quên rằng requestPermission
là không đồng bộ. Vì vậy, không gọi phương thức yêu cầu quyền sau khi requestPermission. Để gọi một phương thức yêu cầu quyền, bạn nên ghi đè onRequestPermissionsResult cung cấp cho bạn danh sách quyền và trạng thái được cấp phép/từ chối của họ.
cảm ơn bạn! – Caipivara
Bạn cũng có thể kiểm tra video mẫu android giải thích quy trình https://www.youtube.com/watch?list=PLWz5rJ2EKKc-lJo_RGGXL2Psr8vVCTWjM&v=C8lUdPVSzDk – xiaomi