API 마시멜로우 버전부터는 Manifest에 권한을 선언하는 것 만으로 허용을 의미하는 것이 아니라고 한다. 런타임에 Manifest에 선언한 권한을 허용하는 작업을 해줘야 한다.
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
//권한 획득했는지 체크
if(coarseResult == PackageManager.PERMISSION_GRANTED &&
fineResult == PackageManager.PERMISSION_GRANTED ){
init()
}else{
findViewById<TextView>(R.id.textView).text = "권한이 없습니다."
//권한이 없을때 권한 요청창 띄우기
ActivityCompat.requestPermissions(this, RUNTIME_PERMISSIONS, PERMISSION_REQUEST_CODE);
}
위처럼 권한이 허용이 안되었을 때와 됐을 때를 나눠 분기처리를 할 수 있는데,
허용이 안된 경우에 권한 허용 창을 띄울 경우
ActivityCompat.requestPermissions(this, RUNTIME_PERMISSIONS, PERMISSION_REQUEST_CODE);
로 허용을 묻는 액티비티를 불러올 수 있다.