Develop/Flutter

[Flutter] 플러터 사용자에게 권한 요청하기(permission_handler)

JunJangE 2022. 1. 14. 12:20

이번에는 개발 중 자주 사용하는 권한을 사용자에게 요청하는 코드를 구현해보자.

앱을 개발하다 보면 사용자가 카메라, 위치 정보, 사진 등 권한을 허용해야 실행되는 것을 구현할 때가 있을 것이다.

그런 권한 요청을 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