코딩 일기장/Flutter

[Flutter] Permission Request/권한 요청

minWachya 2023. 7. 13. 12:35
반응형

권한 추가를 해보자고요.


1. 의존성 다운

https://pub.dev/packages/permission_handler

dependencies:
  permission_handler: ^10.4.2

 

2. 네이티브 코드에 요청할 권한 작성

- 나는 카메라, 쓰기 권한을 요청하려고 한다.

- Android: android/app/src/main/AndroidManifest.xml의 <manifest> 안에 다음 코드 추가

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />

- iOS: ios/Runner/Info.plist의 <dict> 안에 다음 코드 추가

<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) 사진첩 접근 권한</string>
<key>NSCameraUsageDescription</key>
<string>$(PRODUCT_NAME) 카메라 접근 권한</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>$(PRODUCT_NAME) 사진첩 추가 권한</string>
<key>NSFileProtectionKey</key>
<string>$(PRODUCT_NAME) 파일 쓰기 권한</string>

 

3. 권한 요청 코드 작성

Future<bool> permission() async {
    await [Permission.camera, Permission.storage].request();

    if (await Permission.camera.isGranted &&
        await Permission.storage.isGranted) {
      goHomepage();
      return Future.value(true);
    } else {
      Fluttertoast.showToast(msg: '포포 스테이지를 즐기기 위해 권한을 설정해주세요.');
      return Future.value(false);
    }
  }

flutter는 이렇게 가끔 네이티브로 코드를 추가해줘야하는 게 아주 귀찮다...

반응형