유저에게 앱 권한(카메라, 위치, ..)을 요청할 때 사용
import 'package:permission_handler/permission_handler.dart';
dependencies:
flutter:
sdk: flutter
permission_handler: ^12.0.1
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
getPermission() async {
var status = await Permission.contacts.status;
if (status.isGranted) {
print('허락됨');
} else if (status.isDenied) {
print('거절됨');
await Permission.contacts.request();
} else if (status.isPermanentlyDenied) {
openAppSettings();
}
}
// (생략)
IconButton(
onPressed: () {
getPermission();
},
icon: Icon(Icons.contacts),
),

유저에게 연락처 권한 요청할 때 사용
import 'package:flutter_contacts/flutter_contacts.dart';
dependencies:
flutter_contacts: ^1.1.9+2
// 연락처 불러오기
Future<void> loadContacts() async {
if (await Permission.contacts.request().isGranted) {
List<Contact> contacts = await FlutterContacts.getContacts(withProperties: true);
setState(() {
name = contacts;
});
}
}
// 연락처 추가하기
Future<void> addContact(String newName, String newNumber) async {
final newContact = Contact()
..name.first = newName
..phones = [Phone(newNumber)];
await newContact.insert();
}
// 연락처 까보기
ListTile(
title: Text(contact.displayName),
subtitle: Text(contact.phones.isNotEmpty ? contact.phones[0].number : ''),
)
