Как проверить, является ли номер телефона в контактах устройства мобильным телефоном? - PullRequest
0 голосов
/ 28 апреля 2020

В рамках разработки разработки мобильного приложения мы получаем доступ к списку контактов пользователя. Затем нам нужно отфильтровать контакты по номеру сотового (мобильный). Другими словами, нам нужно исключить контакты со стационарными номерами. Вопрос в том, как мы можем сделать это для всех стран?

Сначала мы думали, что во всех странах мобильные номера состоят из 10 цифр, начиная с нуля (0 ххх ххх ххх). Но похоже, что это не так.

Такие приложения, как WhatsApp или Telegram, делают это. Например, как только вы откроете контакты в WhatsApp, он будет показывать только ваши контакты с номером мобильного телефона. Таким образом, должен быть способ сделать это.

Нам нужно глобальное решение по этому вопросу.

Ответы [ 2 ]

1 голос
/ 28 апреля 2020

Как вы считали, ваше предположение совершенно неверно. Каждая страна имеет свой собственный почтовый индекс и имеет разное количество цифр для своих телефонных номеров.

Для разбора международного телефонного номера я предлагаю вам отличную библиотеку, в которой я часто ее использовал PhoneNumberKit

0 голосов
/ 28 апреля 2020

Номер 10 ди git действителен только для некоторых стран, номер мобильного телефона может варьироваться от 7 до 13 ди git, вы можете использовать два метода, которые я бы использовал, один из них будет исключение, проверить для отрицательный регистр и вернуть его, т.е. проверить наличие символов, специальных символов, длины от 7 до 13, если он подтвердится, то мы предположим, что это номер мобильного телефона, или воспользуемся функциями android Соответствие номера телефона.

private boolean validateMobileNumber(String phone) {
return android.util.Patterns.PHONE.matcher(phone).matches();    
}

или

private boolean validateMobileNumber(String mobileNumber) {
    if(!Pattern.matches("[a-zA-Z]+", phone)) {
        return mobileNumber.length() > 6 && mobileNumber.length() <= 13;
    }
    return false;
}
...