LocationPermission 에러
import 'package:flutter/material.dart';
import 'package:geolocator/geolocator.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class HomeScreen extends StatefulWidget {
const HomeScreen({super.key});
@override
State<HomeScreen> createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
final CameraPosition initialPosition = CameraPosition(
target: LatLng(37.5214, 126.9246),
zoom: 17
);
@override
initState(){
super.initState();
checkPermission();
}
checkPermission( ) async {
final inLocationEnabled = await Geolocator.isLocationServiceEnabled();
if(!inLocationEnabled){
throw Exception('위치 기능을 활성화 해주세요');
}
LocationPermission checkedPermission = await Geolocator.checkPermission();
if(checkedPermission == LocationPermission.denied){
checkedPermission = await Geolocator.requestPermission();
}
if(checkedPermission != LocationPermission.whileInUse || checkedPermission != LocationPermission.always) {
throw Exception('권한을 허가해 주세요');
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
Expanded(
child: GoogleMap(
initialCameraPosition: initialPosition,
)
)
],
),
);
}
}강의를 보면서 공부 도중 테스트를 하는데
LocationPermission.whileInUse
LocationPermisson.always 의 if문에서 Exception으로 던지는데 해결방법을 모르겠습니다.
답변 2
0
안녕하세요!
어떤 에러를 던진다는 말씀이실까요?
에러가 있을때는 어떤 예외인지를 정확히 알려주셔야합니다. 그렇지 않으면 문제를 파악 할 수 있는 방법이 없습니다.
감사합니다!
0
D/EGL_emulation(11327): app_time_stats: avg=175.23ms min=23.00ms max=693.03ms count=6
E/flutter (11327): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Exception: 권한을 허가해 주세요
E/flutter (11327): #0 HomeScreenState.checkPermission (package:choolcheck/screen/home_screen.dart:42:9)
E/flutter (11327): <asynchronous suspension>
E/flutter (11327):
이것을 보내드리면 될까요?
0
안녕하세요, 인프런 AI 인턴입니다.
알로하님의 질문과 관련하여, LocationPermission 에러 처리와 관련된 구체적인 해결 방안으로 질문에 포함된 코드의 로직을 상세히 살펴볼 필요가 있습니다. 특히, 권한 요청 과정에서 발생하는 문제를 해결하기 위해 로직 내 조건부 처리에 주의를 기울여야 합니다.
알로하님의 코드에서는 LocationPermission의 상태를 검사하여, 사용자의 위치 서비스 활성화 및 권한 부여 상태를 확인하고 있습니다. 코드 중 if(checkedPermission != LocationPermission.whileInUse || checkedPermission != LocationPermission.always) 조건문에서 예외를 발생시키는 부분이 문제의 핵심입니다. 이 조건문은 whileInUse 또는 always 권한이 부여되지 않았을 경우 예외를 발생시키도록 설계되었습니다. 그러나, 이 로직에는 문제가 있을 수 있습니다.
비슷한 주제로 질문이 이전에 있었던 것과 관련해, 코드팩토리 강사님께서는 권한 요청 과정에서 LocationPermission.denied 상태의 처리에 대해 자세히 설명하셨습니다. 그러나 알로하님의 경우는 denied 상태가 아닌, whileInUse 및 always에 대한 권한 부여 문제를 경험하고 계십니다.
불행히도, 제공된 정보 속에서 직접적으로 알로하님의 문제를 해결하는 명시적인 답변은 찾을 수 없었습니다. 하지만, 권한 요청과 관련된 문제 해결 방법을 탐색하는 데 참고가 될 수 있는 이전 질문 중 하나를 여기에 링크합니다: “LocationPermission.denied관련 질문입니다”에서는 권한 요청이 거부됐을 때의 처리 방법에 대해 설명하고 있습니다. 알로하님의 코드에서 발생한 문제는 다를 수 있지만, 권한 요청 과정과 관련된 로직을 이해하는 데 도움이 될 수도 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
198강 (){onTap(e);}의 이해 돕기
0
26
1
video_call 플러그인 설치후 에러 발생
0
45
1
SDK 안드로이드 설치 질문!
0
60
1
코드팩토리 디스코드 링크 다시 부탁드려요~
0
92
1
Webview를 이용해서 URL 상의 페이지 출력 불가
0
70
1
홈스크린 함수를 함축해서 main.dart에 옮기는 문제
0
55
1
플레이스토어
0
59
1
아고라 엔진 init 함수의 반환타입이 Future<void> 이것의 의미는 무엇인가요?
0
55
1
가이드라인 질문
0
57
0
emulator 에러 환경설정 뭐가 문제 일까요??
0
76
1
emulator 실행 오류
0
93
3
Column을 가로방향 최대 사이즈를 차지하도록 하는 방법에 관련
0
71
1
pubspec.yaml에서 font를 추가하면서 weight 값을 지정하는 것이 의미가 있는 것인지 문의
0
43
1
setState()를 호출하지 않으면 build가 실행 안되는 건가요?
0
53
1
video_call 플러그인 설치시 에러문제
0
64
1
children 안의 if 문에서 { } 못쓰는 이유?
0
48
1
이렇게 오류가 떠요
0
63
1
AppBar 사용했는데
0
61
2
[문제해결] '오늘도 출첵!' 의 171번 강의에서 중요한 문제를 발견했습니다
0
56
1
StatefulWidget 실습 에러가 발생합니다.[해결완료]
0
63
1
Video Player 프로젝트에 대한 추가 질문
0
53
0
Row위젯이나 column위젯의 위치는 누가 정하나요??
0
42
1
geolocator 오류때문에 개발진행이 불가능입니다
0
63
1
API 관련 이슈
0
86
2





