반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- reactnative
- ReactNaitve
- 연곡해변
- 수도권 근교
- SQL
- 엑셀
- 강릉
- Nas
- react
- 함수
- 가상환경
- 리액트
- 서울
- 나스
- 맛집
- Django
- 캠핑장
- apk
- 장고
- Excel
- react native
- MSSQL
- Firebase
- 리엑트
- 시놀로지
- 시놀로지나스
- synology
- docker
- 캠핑
- Expo
Archives
- Today
- Total
차근차근 생활 & 코딩
[React Native] RN - 권한(카메라, 사진, 미디어, 파일, 위치) 요청하기 본문
IT/REACT NATIVE(리액트 네이티브)
[React Native] RN - 권한(카메라, 사진, 미디어, 파일, 위치) 요청하기
ssilook 2022. 3. 23. 13:59반응형
안녕하세요.
이번 시간에는 안드로이드 권한 설정 하는 방법에 대해 알려드리도록 하겠습니다.
안드로이드(Android) 권한 설정
android > app > src > main > AndroidManifest.xml 경로에 아래 코드를 추가해 주도록 합니다.
<!-- 카메라 사용 권한 -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- 카메라 쓰기 사용 권한 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- 카메라 읽기 사용 권한 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 위치 사용 권한 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
권한요청
아래 코드를 활용하여 권한을 요청하도록 합니다.
import { PermissionsAndroid } from 'react-native';
const requestPermission = async () => {
if (Platform.OS === 'android') {
await PermissionsAndroid.requestMultiple([
// PermissionsAndroid.PERMISSIONS.CAMERA,
PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION,
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
]).then(result => {
if (
// result['android.permission.CAMERA'] &&
result['android.permission.WRITE_EXTERNAL_STORAGE'] &&
result['android.permission.ACCESS_COARSE_LOCATION'] &&
result['android.permission.ACCESS_FINE_LOCATION'] &&
result['android.permission.READ_EXTERNAL_STORAGE'] === 'granted'
) {
console.log('카메라, 미디어파일, 위치 액세스 권한 허용');
} else {
console.log('모든 권한 거절');
}
});
} else {
}
};
<Button title="권한 버튼" onPress={() => requestPermission()} />
결과화면
전체코드
import {StyleSheet, View, Button} from 'react-native';
import React from 'react';
import {PermissionsAndroid} from 'react-native';
export default function App() {
const requestPermission = async () => {
if (Platform.OS === 'android') {
await PermissionsAndroid.requestMultiple([
PermissionsAndroid.PERMISSIONS.CAMERA,
PermissionsAndroid.PERMISSIONS.WRITE_EXTERNAL_STORAGE,
PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
PermissionsAndroid.PERMISSIONS.ACCESS_COARSE_LOCATION,
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
]).then(result => {
if (
result['android.permission.CAMERA'] &&
result['android.permission.WRITE_EXTERNAL_STORAGE'] &&
result['android.permission.ACCESS_COARSE_LOCATION'] &&
result['android.permission.ACCESS_FINE_LOCATION'] &&
result['android.permission.READ_EXTERNAL_STORAGE'] === 'granted'
) {
console.log('카메라, 미디어파일, 위치 액세스 권한 허용');
} else {
console.log('권한거절');
}
});
} else {
}
};
return (
<View style={{flex: 1}}>
<Button title="권한 버튼" onPress={() => requestPermission()} />
</View>
);
}
수고하셨습니다.
반응형
'IT > REACT NATIVE(리액트 네이티브)' 카테고리의 다른 글
[RN] React Native - 앱 아이콘 이름 변경 (0) | 2022.06.06 |
---|---|
[React Naitve] RN - WEBVIEW (웹뷰) 사용법 (0) | 2022.04.26 |
[React Native] RN - 환경 변수를 활용한 API key 숨기기 (0) | 2022.03.18 |
[React Naitve] RN - Firebase 구글 로그인(Google Login) 구현하기 (0) | 2022.03.17 |
[React Native] RN - 체크박스(CheckBox) 버튼 구현하기 (0) | 2022.03.08 |
Comments