이번에는 개발 중 자주 사용하는 권한을 사용자에게 요청하는 코드를 구현해보자.
앱을 개발하다 보면 사용자가 카메라, 위치 정보, 사진 등 권한을 허용해야 실행되는 것을 구현할 때가 있을 것이다.
그런 권한 요청을 permission_handler를 통해 수행하자.
패키지
permission_handler | Flutter Package
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
pub.dev
위 링크에서 Installing에 들어가 다음 패키지를 복사하고 pubspec.yaml의 dependencies에 다음 코드를 작성한다.
dependencies:
permission_handler: ^8.3.0
코드
자신이 원하는 권한을 aos => AndroidMainfest.xml과 ios => info.plist에 추가한다.
+블루투스 권한은 아직 flutter에서 처리 못한다고 한다...
사용자가 권한을 허용하는지 거부하는지에 따른 함수는 다음과 같다.
if (await Permission.location.isGranted) {
// 권한이 부여되었습니다.
}
if (await Permission.location.isDenied) {
// 권한 부여가 거부되었습니다.
}
if (await Permission.location.isPermanentlyDenied) {
// 권한 부여가 영구적으로 거부되었습니다.
}
if (await Permission.location.isRestricted) {
// 권한이 제한되었습니다.
}
권한이 부여되는 지만 확인하기 위해서는 다음 코드를 작성하자.
다음 코드를 작성 후 권한 요청을 하고 싶은 페이지에서 실행시키면 된다.
Future<bool> permission() async {
Map<Permission, PermissionStatus> status =
await [Permission.location].request(); // [] 권한배열에 권한을 작성
if (await Permission.location.isGranted) {
return Future.value(true);
} else {
return Future.value(false);
}
}
실행하게 되면 다음 영상과 같이 실행되는 것을 확인할 수 있다.
참고
permission_handler | Flutter Package
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
pub.dev
'Develop > Flutter' 카테고리의 다른 글
[Flutter] 플러터 image_picker 패키지를 통해 카메라 구현 (5) | 2022.01.16 |
---|---|
[Flutter] 플러터 Geocoding API를 통해 좌표값을 주소로 바꾸기 (0) | 2022.01.15 |
[Flutter] 플러터 Google Map에서 현재 위치 좌표(위도, 경도) 찾기 (0) | 2022.01.13 |
[Flutter] 플러터 String to double 함수 (0) | 2022.01.10 |
[Flutter] 플러터 Google Map API 활용 예제(마커 추가, zoom) (0) | 2022.01.08 |