2015-12-30 7 views
3

Я пытаюсь форматировать номера по умолчанию в код страны, и я знаю, как это сделать, но когда я это делаю, появляется ошибка, говорящая, что это только для API 21. Я настраиваю таргетинг API 16. Если я использую старый метод, я получаю сообщение об ошибке, когда метод устарел? Как я могу использовать этот метод для API 16?Использование PhoneNumberUtils.formatNumber() в API 16

Спасибо!

Документах: http://developer.android.com/reference/android/telephony/PhoneNumberUtils.html#FORMAT_NANP

ответ

14

Следующий пример с устаревшим методом, упомянутым @qbix.

Хорошая практика, чтобы проверить уровень SDK использовать правильный метод:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
    yourTextView.setText(PhoneNumberUtils.formatNumber(yourStringPhone, Locale.getDefault().getCountry())); 
} else { 
    yourTextView.setText(PhoneNumberUtils.formatNumber(yourStringPhone)); //Deprecated method 
} 
1

Ваша ссылка в документации не определяет методы форматирования вы имеете в виду. Я предполагаю, что устаревший метод - formatNumber(String source).

В то время как общее определение «устарело» включает в себя возможность удаления функции в будущем, политика Android не должна удалять элементы из API, которые нарушают существующий код. Примером этого является AbsoluteLayout, который устарел на уровне API 3 и все еще остается частью API. В Android «устаревший» является признаком того, что существует альтернатива, лучший способ добиться того же результата, и вам настоятельно рекомендуется использовать его (если это возможно).

Здесь улучшенный альтернативный метод доступен только на уровне API 21. Для поддержки устройств с более низким уровнем API вы можете безопасно использовать устаревший метод. В ближайшее время это не исчезнет.

Другой вариант заключается в изучении source code для PhoneNumberUtils, чтобы увидеть, если вы можете использовать его части, чтобы создать свой собственный formatNumber() метод, который делает то, что вы хотите, и поддерживает API 16 - вероятно, не стоит усилий.