마쉬멜로우 권한 검사
조회수 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"/>
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력