flutter
[Flutter] 권한 요청 하는 법
킹왕짱지지
2024. 3. 26. 20:44
1. permission_handler 외부패키지 설치필요
pubspec.yaml
dependencies:
flutter:
sdk: flutter
pomission_handler: ^8.3.0
2. main.dart에 패키지 임포트
import 'package:permission_handler/permission_handler.dart';
3. Android 기기 셋팅
android/gradle.properties
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
android/app/build.gradle
android {
compileSdkVersion flutter.compileSdkVersion //또는 compileSdkVersion 31로 하기
android/app/src/main.AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.contact">
//여기부터 추가
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
4. 권한 요청
class _MyAppState extends State<MyApp> {
getPermission() async {
var status = await Permission.contacts.status;
if (status.isGranted) {
print('허락됨');
} else if (status.isDenied) {
print('거절됨');
Permission.contacts.request(); // 허락해달라고 팝업 띄우는 코드
openAppSettings(); //앱 설정 화면 켜줌
}
}
+ 위젯 실행하자 마자 권한요청 또는 이벤트를 실행하고 싶다면?
initState!!
하지만 이상한 앱이 엄청 많은 요즘에는 맞지 않음!
@override
void initState() {
// TODO: implement initState
super.initState();
getPermission();
}
클릭으로 실행
appBar: AppBar(
title: Text(total.toString()),
actions:[IconButton(onPressed: (){getPermission();}, icon: Icon(Icons.contacts))],
),