2013-11-24 5 views
0

현재 특정 국가의 SMS를 블랙리스트에 등록하는 앱을 만들고 있습니다. 이미 내 BroadcastReceiver 클래스를 만들었습니다.이 클래스는 전화 번호와 데이터베이스에 저장된 전화 번호를 비교하는 서비스를 시작합니다. 데이터베이스에 모바일 국가 코드가 들어 있습니다.받은 국가 코드와 데이터베이스에있는 코드를 비교하고 싶습니다. 불행히도 번호에서 국가 코드를 검색 할 수있는 방법을 찾지 못했습니다. 간단한 하위 문자열 호출로 검색 할 수 있다고 생각했지만 모든 국가 코드가 같은 길이가 아니라는 것을 알아 차렸으므로 그렇게 할 수 없었습니다. 접두사가 고유한지 궁금 해서요 (접두사가 다른 접두사 일 수 있다면 말), 그렇지 않다면 최대 크기 접두사를 취한 다음 짧은 접두사를 사용하여 시작할 수 있습니까? 이 작업을 수행하는 방법에 대한 힌트를 제공해 주시겠습니까?Android SmsMessage 국가 코드

고맙습니다.

+0

접미어를 꺼낼 수 없습니까? 나는 모든 전화 번호가 8 자리 길이라고 생각할 것이다. 그러면 문자열에 국가 코드가 남을 것이다. – cYrixmorten

+0

모든 숫자가 한 자리 숫자만큼 길지는 않습니다. – ex0ns

답변

2

전화 번호 규칙은 다소 복잡하며 많은 특수한 경우가 있습니다. 국가 코드를 확실하게 추출하려면 전문 라이브러리를 사용하는 것이 좋습니다. libphonenumber라는 구글에서 잘 알려진 라이브러리는있다 :

https://code.google.com/p/libphonenumber/

는 getCountryCode를 호출 할 수있는에 PHONENUMBER 개체를 반환 extractCountryCode의 PhoneNumberUtil에서 방법 또는 PhoneNumberUtil.parse를 살펴 보자.

오픈 소스이기 때문에 추가 라이브러리를 사용하지 않으려는 경우 직접 국가 코드를 처리하는 방법에 대한 힌트를 얻을 수 있습니다.

+1

extractCountryCode가 정말 도움이되었습니다. 정확히 똑같은 기능을 만들었 기 때문에 매우 행복합니다. – ex0ns

관련 문제