안드로이드 6(Marshmallow) 에서 READ_PHONE_STATE 권한 관련 이슈
보통 아래처럼 전화번호를 가져오게 되는데, Android 6에서 갑자기 문제가 발생했다.
TelephonyManager tm = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE); String mPhoneNumber = tm.getLine1Number();
이 때문에 혹시 permission 요청을 해야하나 하고, 요청을 해봤는데도 안됐다. 이미 permission 은 GRANTED 였다.
if (checkSelfPermission(READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { return true; }
issue 2938
그래서 한참을 찾다가해결 방법은 permission 을 검사하면 된다. 아래 답변을 확인하자.
android {
compileSdkVersion 23
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.ccccc"
minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName "1.0"
버그가 아니고 마쉬멜로우 부터는 사용자에게 퍼미션 정보를 허가 받도록 코드를 변경해야 합니다.
답글삭제네, 버그란 표현은 잘못된 듯 하네요. 감사합니다.
답글삭제