如何按聊天应用程序等手机号码过滤联系人。如果移动电话号码保存在联系人数据库中,则两次使用国家/地区代码并且没有国家/我需要将两个数字合并为单个联系人。
例如, 我通过9876543210和+919876543210保存了联系人Bala。在这种情况下,我需要过滤这两个数字并将+919876543210号码返回到我的应用数据库。
答案 0 :(得分:0)
您需要将所有电话号码转换为E164格式(国家/地区代码,无空格或短划线) 例如:+12125551234
如果您的目标是API级别21及更高级别,则可以执行以下操作:
String e164 = PhoneNumberUtils.formatNumberToE164(originalNumber, countryCode);
要获取国家/地区代码,请尝试以下操作:
TelephonyManager telephony = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String countryCode = telephony.getSimCountryIso().toUpperCase();
如果您的api级别低于21,则可以使用带有类似API的Google“libphonenumber library for Android。
如果所有手机都已标准化为E164格式,您可以删除重复项,只需不将新手机添加到联系人,以防联系人已拥有该手机(您可能会发现HashMap对此有用)