인프런 커뮤니티 질문&답변

김건희님의 프로필 이미지
김건희

작성한 질문수

배달앱 클론코딩 [with React Native]

위치정보, 카메라 권한 얻기(react-native-permissions)

질문있습니다!

해결된 질문

작성

·

539

1

안녕하세요 제로초님! 

위치정보 카메라 권한 얻기 강의에서

 

질문1. 

 if (Platform.OS === 'android') {
      check(PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION)
        .then(result => {
          console.log('check location', result);
          if (result === RESULTS.BLOCKED || result === RESULTS.DENIED) {
            Alert.alert(
              '이 앱은 위치 권한 허용이 필요합니다',
              '앱 설정 화면을 열어서 항상 허용으로 바꿔주세요.',
              [
                {
                  text: '네',
                  onPress: () => Linking.openSettings(),
                },
                {
                  text: '아니오',
                  onPress: () => console.log('No Pressed'),
                  style: 'cancel',
                },
              ],
            );
          }
      })

위치 권한 허용할 때 위치권한은 항상허용이 사라져서 수동으로 해야한다고 말씀하셨잖아요? 그런데 19:20초쯤 안드로이드에서는 그냥 deny일때 request하면 된다고 하셔서 헷갈리는게 있습니다! 19:20초에서 말씀하신 뜻이 수동으로 말고 request로 해도 된다는 말씀이신가요?

 

코드에서는 위치권한을 아예 수동으로 설정해놓으셨는데 위치권한 항상허용은 수동으로 해야하나요?... 아니면 deny일때 request를 하면 항상허용이 적용되는 것인가요?

 

질문2.

 

또한 deny와 block의 차이를 모르겠습니다.

 

콘솔로 찍어서 deny와 다른 선택지를 클릭하면 deny는 나오는데 block은 나오지 않습니다 block은 차단인것 같은데 어떨 때 발생하는것인지 궁금합니다. 

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

권한은 deny 상태여야지 request할 수 있습니다. blocked가 뜬다면 아예 권한 자체를 얻을 수 없는 상황이라 프로그래밍적으로는 권한을 못 얻고 직접 수동 세팅 들어가서 바꾸든지 해야 합니다. 아래 링크 다이어그램을 보시면 deny와 block의 차이가 보입니다.

https://github.com/zoontek/react-native-permissions#ios-flow

위치 권한 항상 허용은 request만으로는 얻을 수 없고 그것도 수동으로 변경해주어야 합니다.

김건희님의 프로필 이미지
김건희
질문자

아, 제가 무엇을 착각한것 같습니다. 강의 내용에서 request와 수동으로 하는것 총 두개를 보여주셨습니다.  그런데 request뿐만 아니라 수동에서도 권한 옵션이 강화 되어서 항상 허용이 없어지고  바뀐것 같다고 하셨는데  ( allow only  while using this app 이 남음) 그러면  우와요기이츠 앱같은 경우는 while using this app의 권한으로 앱사용이 가능하니 request나 수동중 둘중 아무거나 사용해도 되는것이죠?

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 맞습니다.

김건희님의 프로필 이미지
김건희

작성한 질문수

질문하기