【问题标题】:android contacts unformatted and formatted numberandroid 联系人未格式化和格式化号码
【发布时间】:2017-09-02 08:06:27
【问题描述】:

三星 Galaxy S6 Edge、Android 6.0.1、Microsoft Exchange Active Sync。

在我的应用中,我列举了一个人的所有电话号码。对于某些人来说,手机号码列出了两次,一次是我在 Outlook 中输入号码时使用的(手动)格式,另一次是删除了所有格式。

输入并显示正确:010-123 45 67 对于某些人来说,我的应用程序也得到:0101234567。 如果我向该人发送 SMS 并且 Android 似乎会记住该号码并将其以不可见的方式保存在地址簿中,则会显示此内容。

如果我在 Outlook 联系人和电话联系人中查找此人,则只有格式化的号码可见。

任何线索如何删除未格式化的数字?

【问题讨论】:

  • 那个链接失效了
  • 一个快速而肮脏的解决方案:String stripped = stripSeparators(phoneNumber); if (stripped.equals(phoneNumber) == false) theNumbers.add(phoneNumber);但是必须有更好的方法,因为我的通讯录中可能存在未格式化的数字,如果是这样,它们将被排除在外。

标签: android android-contacts phone-number invisible


【解决方案1】:

虽然我确信有更好的方法,但已经解决了。

phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(NUMBER));
String stripped = stripSeparators(phoneNumber);
int count = theNumbers.size();
boolean present = false;
for (int i = 0; i < count; i++)
{
  if (stripSeparators(theNumbers.get(i)).equals(stripped) == true)
  {
    present = true;
    break;
  }
}
if (present == false)
  theNumbers.add(phoneNumber);

【讨论】:

  • 这仅在数字按特定顺序出现时才有效。我已经通过首先收集所有数字然后搜索重复来解决它。不漂亮。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多