[Flutter] 패키지 정리

멋진감자·2025년 7월 9일
0

Flutter

목록 보기
5/25

permission_handler

유저에게 앱 권한(카메라, 위치, ..)을 요청할 때 사용

import

import 'package:permission_handler/permission_handler.dart';

pubspec.yaml

dependencies:
  flutter:
    sdk: flutter
  permission_handler: ^12.0.1

Android.manifest.xml

<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>

example

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),
),

flutter_contacts

유저에게 연락처 권한 요청할 때 사용

import

import 'package:flutter_contacts/flutter_contacts.dart';

pubspec.yaml

dependencies:
  flutter_contacts: ^1.1.9+2

example

// 연락처 불러오기
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 : ''),
)

profile
난멋져

0개의 댓글