마쉬멜로우 권한 검사

조회수 2731회

어플에서 gps를 사용하고 있습니다.

MainActivity.java


    protected void onStart() {
        super.onStart();
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            //권한이 없을 경우
            //최초 권한 요청인지, 혹은 사용자에 의한 재요청인지 확인
            if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.ACCESS_FINE_LOCATION) &&
                    ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.ACCESS_COARSE_LOCATION)) {
                // 사용자가 임의로 권한을 취소시킨 경우
                // 권한 재요청
                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 100);
                return;
            } else {
                ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 100);
                return;
            }
        }
  }
    ```

onStart()에서 권한 검사를 해주고 프레그먼트1에서 다음맵뷰를 설정하는데

mapView = new MapView(getActivity());

이 부분에서 

 java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.

이런 오류가 뜨면서 강제 종료 됩니다.
권한 검사를 어떻게 해야 되나요??
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • AndroidManifest.xml 파일에 아래 권한이 추가되어 있는지 확인해보세요.

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)