Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- CS
- 파이썬
- Java
- 스프링 부트 쇼핑몰 프로젝트 with JPA
- 자바스크립트
- postgresql
- 스프링
- springboot
- 자료구조
- 데이터
- 데이터베이스
- backjoon
- 백준
- 스프링부트
- python
- Oracle
- 시큐리티
- Flutter
- 네트워크
- baekjoon
- 리눅스
- spring
- JPA
- DB
- 플러터
- 프로그래머스
- javascript
- CS지식
- Spring Security
- 자바
Archives
- Today
- Total
Jin's Dev Story
[Flutter] 권한 팝업 요청 기능 본문
패키지 설치
1. pubspec.yaml 파일에 dependencies: 를 찾아 permission_handler: ^8.3.0 을 입력
dependencies:
flutter:
sdk: flutter
permission_handler: ^8.3.0
2. 옆에 전구 모양 아이콘 클릭하여 pub get 실행
3. import 'package:permission_handler/permission_handler.dart'; 를 main.dart 파일 가장 상단에 추가
- permission_handler.dart 파일에 있는 함수와 변수들을 가져다쓸 수 있게 해주는 문법이다.
Android 기기 설정
1. android/gradle.properties 파일 확인
- 아래 코드가 입력되어 있는지 확인 후 없으면 추가
android.useAndroidX=true
android.enableJetifier=true
2. andorid/app/build.gradle 파일
- 아래 코드가 31로 되어있는지 확인
- 다른 숫자면 31로 변경
- 숫자 대신 문자가 채워져 있으면 그냥 냅두기
android {
compileSdkVersion 31
3. android/app/main/AndroidManifest 파일에 코드 추가
- <mainfest ~~ > 아래, <application ~~~> 위에 작성
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
연락처 권한 확인
- Permission.contacts 에서 contacts 말고 camera, location 같은 거 써서 카메라, 위치 권한 허락 받을 수 있음
- Permission.contacts.status 라고 사용하면 연락처 권한 상태를 출력할 수 있음
- await이 붙은 이유는 await 뒤에 있는 문장이 실행되는 속도가 느리기 때문에 Dart 언어의 특징으로는 다음 줄을 먼저 실행할 것임
- 그렇기 때문에 await을 붙여 다음 줄을 실행하지 않고 기다려 달라는 뜻이다.
- await은 async 안에 붙어 있어야 한다.
getPermission() async {
var status = await Permission.contacts.status;
if (status.isGranted) {
print('허락됨');
} else if (status.isDenied) {
print('거절됨');
Permission.contacts.request(); // 현재 거절된 상태니 팝업창 띄워달라는 코드
}
}
- Permission.contacts.request() 는 사용자에게 연락처 사용 권한을 달라고 요청
→ 주의
- Android 11버전 이상과 iOS에서는 유저가 한 두번 이상 권한 요청을 거절하면 다시는 팝업을 띄울 수 없음
- 앱 설정 오픈해서 유저가 직접 설정을 바꿔야 함
- openAppSettings(); 을 작성하면 앱 설정을 오픈해줌
'Web & Android > Flutter' 카테고리의 다른 글
[Flutter] null check 하는 법 & Android 앱 발행 (0) | 2023.09.12 |
---|---|
[Flutter] 사용자 연락처 불러오기 (0) | 2023.09.12 |
[Flutter] 버튼에 기능 부여하는 법 (0) | 2023.09.12 |
[Flutter] 레이아웃 위젯 (0) | 2023.09.12 |
[Flutter] Lint 관련 워닝 무시하는 법 (0) | 2023.09.12 |