TaeJuneJoung / 21WKU_APP

21 원광대학교 APP 해커톤 ISSUE
3 stars 0 forks source link

위치 권한이 있음에도 불구하고 에러가 뜹니다. #1

Closed dolto closed 2 years ago

dolto commented 2 years ago

현재 다음카카오맵 api를 사용하고 있습니다.

        LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        String locationProvider = LocationManager.NETWORK_PROVIDER;
        Location userLocation = locationManager.getLastKnownLocation(locationProvider);
        double lng = userLocation.getLongitude();
        double lat = userLocation.getLatitude();

과 같은식으로 로케이션을 직접 이용해서 gps좌표를 따는것은 성공했습니다. (어쩨서인지 북한에 바다에 있었지만...)

아무튼 그래서 다음카카오앱에서 사용하는 트래킹매서드를 이용하려고 했습니다.

mapView.setCurrentLocationTrackingMode(MapView.CurrentLocationTrackingMode.TrackingModeOnWithHeading); //지도화면 중심을 단말의 현재 위치로 이동시켜줌

문제는 이 부분에서 에러가 뜹니다. Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.List android.location.LocationManager.getAllProviders()' on a null object reference

에러를 구글링했는데 제가 찾은 해결법 전부 권한설정을 제대로 하지 못한 문제라고 하는데... 권한이 문제였다면 gps좌표를따오는게 불가능 했을테니 그건 아닌것 같습니다.

api에서 제공하는 함수를 이용하는 것이기 때문에 뭐가 문제인지 잘모르겠습니다.

canon11120 commented 2 years ago

android manifest에

uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"

를 확인하십시요.

checkSelfPermission 함수를 통해 해당 권한의 획득 여부를 확인하십시요. https://developer.android.com/training/permissions/requesting?hl=ko

애플리케이션 -> 해당 앱 선택 -> 수동으로 권한 허용 방법도 있습니다.

TaeJuneJoung commented 2 years ago

해당 팀명은 자의적캐스팅 입니다.

TaeJuneJoung commented 2 years ago

Q. 팀: 자의적캐스팅 + 에비동

본인 GPS 위치를 찾는 방법

A. Kakao API 부분에서 제공하고 있습니다.

https://apis.map.kakao.com/android/documentation/#MapView_Methods_getCurrentLocationTrackingMode

트레킹 부분입니다. 해당 요소로 찾아보시면 좋을거 같습니다.