我创建了一个函数(使用flutter_contacts
),根据给定的联系人手机号码(输入- cellnumber)搜索我手机上的联系人:
Contact? contact = contacts.firstWhereOrNull((c) => c.phones.contains(Phone(cellnumber)));
当我搜索不带“+”号的号码(例如12345
),而联系人列表中的联系人号码不带“+”号(例如12345
)时,该功能完全正常。但当我搜索带“+”号的号码(例如+12345
),而联系人号码带加号(例如+12345
)时,该功能就不起作用了。
有人知道为什么会这样吗?怎么解决?
1条答案
按热度按时间oyxsuwqo1#
如果查看the code,您会发现要使
Phone
类与另一个类相等,需要匹配更多组件,而不仅仅是电话号码。因此,要只检查电话号码,您需要自己进行比较:
如果这仍然不匹配,打印所有的联系人来调试它。我不知道你的联系人列表包含什么或为什么它不匹配。
有一个
normalizedNumber
属性,也许您需要使用它来判断是否有人使用了类似“+1(234)567-8900”的格式。