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))],
),
'flutter' 카테고리의 다른 글
[Flutter] 안드로이드 APP으로 발행하기 (0) | 2024.03.27 |
---|---|
[Flutter] 연락처 접근 (0) | 2024.03.27 |
[Flutter] Input 값 받기, List, Map 활용하기 (0) | 2024.03.20 |
[Flutter] Dialog (0) | 2024.03.18 |
[Flutter] 버튼에 기능 추가(FAB, State) (3) | 2024.03.18 |