[flutter] 플러터에서 권한 요청하기

플러터 앱을 개발할 때, 사용자의 디바이스에 접근하기 위해서는 권한을 요청해야 합니다. 이번 포스트에서는 플러터에서 어떻게 권한을 요청하는지에 대해 알아보겠습니다.

1. 권한 확인하기

사용자 디바이스에 접근하기 위한 권한을 요청하기 전에, 먼저 해당 권한이 이미 허용되었는지 확인해야 합니다.

다음은 AndroidManifest.xml과 Info.plist에서 권한을 설정하는 예시입니다.

<!-- AndroidManifest.xml -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- Info.plist -->
<key>NSCameraUsageDescription</key>
<string>We need access to your camera to take photos</string>

2. 플러터 패키지 추가하기

플러터에서는 permission_handler 패키지를 사용하여 권한을 요청합니다. 먼저 pubspec.yaml 파일에 패키지를 추가해주세요.

dependencies:
  permission_handler: ^9.1.0

그리고 패키지를 세팅하기 위해 pub get 명령을 실행해주세요.

3. 권한 요청하기

이제 해당 기능을 사용할 때, 권한을 요청할 수 있습니다.

import 'package:permission_handler/permission_handler.dart';

void main() async {
  var status = await Permission.camera.status;
  if (!status.isGranted) {
    await Permission.camera.request();
  }
}

위 예제에서는 카메라 권한을 확인하고, 권한이 없다면 요청하는 방법을 보여줍니다.

4. 권한 결과 처리하기

사용자가 권한 요청에 대한 응답을 하면, 해당 응답에 맞게 앱이 동작하도록 코드를 작성해주세요.

void main() async {
  var status = await Permission.camera.status;
  if (!status.isGranted) {
    if (status.isDenied) {
      // 요청을 거절했을 때
    } else if (status.isPermanentlyDenied) {
      // 영구적으로 요청을 거절했을 때
    }
  } else {
    // 권한이 허용됐을 때
  }
}

이러한 방법으로 플러터 앱에서 권한을 요청하고 처리할 수 있습니다.

더 자세한 내용은 permission_handler 패키지 문서를 참고하시기 바랍니다.