yarn add react-native-contacts
를 통해 연락처 접근권한을 얻으려고 했다.
import { PermissionsAndroid } from 'react-native';
import Contacts from 'react-native-contacts';
async function requestContactsPermission() {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.READ_CONTACTS,
{
title: '연락처 접근 권한이 필요합니다.',
message: '앱에서 연락처에 접근하려면 권한이 필요합니다.',
buttonNeutral: '나중에 묻기',
buttonNegative: '거부',
buttonPositive: '허용',
},
);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log('연락처 접근 권한을 얻었습니다.');
// 연락처를 불러올 수 있는 코드를 작성하세요.
} else {
console.log('연락처 접근 권한이 거부되었습니다.');
}
} catch (err) {
console.warn(err);
}
}
해당 방식을 참고하여 실행하려고 하였으나, 계속해서 접근권한이 거부되었다고 찍혔다.
다시 검색해서 찾아보고 그 이유를 알 수 있었다.
android/app/src/main/AndroidManifest.xml
안에
<manifest> 태그 안의 <uses-permission> 태그 아래에 추가해야했다.
<uses-permission android:name="android.permission.READ_CONTACTS" />
추가로 전화번호부를 가져오려고 할 때는
Contacts.getAll((err, contacts) => { if (err) { throw err; } console.log(contacts); });
를 사용하면 된다.