728x90
반응형
안드로이드에서 기본적으로 제공되는 클래스를 사용해 봅니다
val phoneNum = PhoneNumberUtils.formatNumber(number, Locale.getDefault().country)
val result = PhoneNumberUtils.normalizeNumber(phoneNum)
생각보다 간단합니다... 그런데 국가번호(+82)가 추가되면 country 설정에 따라 변경이 되지 않는 경우도 발생합니다.
폰번호 관련 라이브러리 찾아 사용하니 country 값이 다른나라가 설정되도 National 데이터는 동일하게 노출되어 라이브러리를 사용하기로 했습니다.
(github.com/google/libphonenumber)
그리고 데이터를 받는 쪽에서 +82다음에 0 이 있어야 폰넘버로 인식하게끔 해놔서 0이 포함되어야 했는데 원 데이터에 0이 없어도 national 로 데이터를 획득하니 다행이 0이 붙어서 넘어 왔습니다.
val String.numberToNational: String
get() {
return try {
val phoneNumberUtil = PhoneNumberUtil.getInstance()
val locale = Locale.getDefault().country
val toNationalNum = phoneNumberUtil.parse(this, locale)
val national = phoneNumberUtil.format(toNationalNum, PhoneNumberUtil.PhoneNumberFormat.NATIONAL)
PhoneNumberUtil.normalizeDigitsOnly(national)
} catch(e: Exception) {
Klog.e("StringExt:toNational", e)
this
}
}
반응형
'Development > Android' 카테고리의 다른 글
[android] bundle 빌드하기, 설치 (0) | 2021.04.07 |
---|---|
[android] System WebView 앱 강제종료 (0) | 2021.04.06 |
[android] 앱에서 WebView 로드 시 키보드/키패드 노출하기 (0) | 2021.04.05 |
[android] 유튜브 백그라운드 재생 정책위반 (0) | 2021.04.05 |
[android] 다른앱 위에 뷰(floating view) 띄우기 (0) | 2021.04.01 |
댓글