마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

BroadcastReceiver 에서의 심카드 정보 가져오기

0 추천
안녕하세요.
심카드가 제거되면 이벤트를 받아 심카드시리얼번호를 가져오려고 합니다. (심카드 변경되면 로그인 정보를 삭제해야 해서요)

BroadcastReceiver 관련하여 이상한 부분이 있어 문의드려요
"android.intent.action.SIM_STATE_CHANGED" BroadcastReceiver를 정적으로 등록하여 심카드를 제거하면
onReceive 가 수신되고 여기서

TelephonyManager telephonyMgr = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
String SimSerial = telephonyMgr.getSimSerialNumber();

이렇게 하면 정상적으로 SimSerial에 null 이 반환됩니다. (Activity 에서도 동일하게 null이 반환됩니다)

그런데 정적이다 보니 리시버 해제가 안되서 동적으로 등록하여 onReceive를 수신한 후에 위의 동일 코드로 심시리얼 정보를 읽으면 null이 아니라 기존 제거되기 전 값이 나옵니다.

혹시 동적 BroadcastReceiver 에서 심카드 정보가져오는 법 사용해보신 분들 있으신가요

테스트 폰은 갤럭시 S8
안드로이드버전 : 7.0
입니다.
익명사용자 님이 2017년 12월 1일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...