2012-12-10 6 views
0

연락처를 테스트 할 때 버그가 있습니다. 버그 주소는 PhoneNumberUtils.charToBCD()입니다.android의 전화 번호의 특수 문자

오류는 java.lang.RuntimeException : BCD의 잘못된 문자입니다. 즉 ;은 처리되지 않습니다.

전화 번호의 특수 문자의 의미는 무엇입니까?

이 문제에 대해 감사드립니다.

+0

구문 분석하려고하는 데이터 또는 문제의 원인이되는 문자를 게시 해보십시오. – JoxTraex

답변

2

, 그래서 아마 그것을 구문 분석하려고 vCard의 전화 번호.

vCard에서 전화 번호는 일반적으로 자유 형식 텍스트로 인코딩됩니다. 즉, 전화 번호는 임의의 문자를 포함 할 수 있음을 의미합니다.

또한 URI로 인코딩 될 수 있습니다. 전화 번호에 확장자가 있으면 전화 번호 URI에 세미콜론이 포함됩니다. 예 :

tel:+1-555-555-5555;ext=5555 
1

예외는 함수에 전달되는 PhoneNumberUtils.java - android-vcard

private static int 
    charToBCD(char c) { 
     if (c >= '0' && c <= '9') { 
      return c - '0'; 
     } else if (c == '*') { 
      return 0xa; 
     } else if (c == '#') { 
      return 0xb; 
     } else if (c == PAUSE) { 
      return 0xc; 
     } else if (c == WILD) { 
      return 0xd; 
     } else { 
      throw new RuntimeException ("invalid char for BCD " + c); 
     } 
    } 

인해

은 그래서 ;을 확인 슬로우됩니다

@SreekeshOkky는 그의 대답에서 "vCard를"을 언급