안드로이드 개발 질문/답변
(글 수 45,052)
[게시판 검색 모두 마쳤습니다만 초보라 잘 찾지를 못해 글을 올립니다.]
SMS를 받아 특정번호를 걸러서 해당 처리를 해 줄려고 합니다.
이때 몇가지 잘 안되는 점이 있어 질문드립니다.
받아오는 부분 리시브소스 중 일부입니다.
이때
1) 모토로이, 모토그램과 같이 모토롤라 폰의 경우 msgs.length가 2일때가 종종 있습니다.
그래서 로그를 찍어보면 처음 돌때는 문자 내용을 제대로 가져오는 거 같은데 두번째 돌때는 내용이 중간 중간 짤려져서 나옵니다.
msgs.length 가 1보다 클때는 어떤때인가요? 혹시 문자내용 중에 특수문자가 들어가면 안되는건가요?
2) 에뮬레이터, 넥세서원, 모토로이는 getOriginatingAddress()로 하면 발신자 번호를 제대로 가지고 오는데
갤럭시S 의 경우는 getOriginatingAddress()로 하니 이상한 번호가 찍히고 getDisplayOriginatingAddress()로 하니
제대로 나옵니다.
그런데 옵티머스큐의 경우는 위 두 메소드를 써도 이상한 번호가 나오네요.
어떻게 처리해야 할까요? 제조사별로 다르게 처리해야 하는게 있나요?
결론적으로 제조사와 통신사에 관계없이 해당 문자의 발신번호와 문자내용을 알아오고 싶습니다.
몇날몇일을 헤메고 있네요.
고수님들의 조언을 부탁드립니다.
SMS를 받아 특정번호를 걸러서 해당 처리를 해 줄려고 합니다.
이때 몇가지 잘 안되는 점이 있어 질문드립니다.
받아오는 부분 리시브소스 중 일부입니다.
Object[] pdus = (Object[]) intent.getExtras().get("pdus"); SmsMessage msgs[] = new SmsMessage[pdus.length]; for (int i = 0; i <msgs.length; i++) { msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]); phoneNum = msgs[i].getOriginatingAddress(); msgContent = msgs[i].getMessageBody(); }
이때
1) 모토로이, 모토그램과 같이 모토롤라 폰의 경우 msgs.length가 2일때가 종종 있습니다.
그래서 로그를 찍어보면 처음 돌때는 문자 내용을 제대로 가져오는 거 같은데 두번째 돌때는 내용이 중간 중간 짤려져서 나옵니다.
msgs.length 가 1보다 클때는 어떤때인가요? 혹시 문자내용 중에 특수문자가 들어가면 안되는건가요?
2) 에뮬레이터, 넥세서원, 모토로이는 getOriginatingAddress()로 하면 발신자 번호를 제대로 가지고 오는데
갤럭시S 의 경우는 getOriginatingAddress()로 하니 이상한 번호가 찍히고 getDisplayOriginatingAddress()로 하니
제대로 나옵니다.
그런데 옵티머스큐의 경우는 위 두 메소드를 써도 이상한 번호가 나오네요.
어떻게 처리해야 할까요? 제조사별로 다르게 처리해야 하는게 있나요?
결론적으로 제조사와 통신사에 관계없이 해당 문자의 발신번호와 문자내용을 알아오고 싶습니다.
몇날몇일을 헤메고 있네요.
고수님들의 조언을 부탁드립니다.