마쉬멜로우 권한 검사


어플에서 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.

이런 오류가 뜨면서 강제 종료 됩니다.
권한 검사를 어떻게 해야 되나요??
  • 2016년 10월 28일에 작성됨
    대학생입니다.

조회수 97


1 답변


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

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close