使用flutter_contacts进行Dart Phone类搜索

yyyllmsg  于 2022-12-16  发布在  Flutter
关注(0)|答案(1)|浏览(115)

我创建了一个函数(使用flutter_contacts),根据给定的联系人手机号码(输入- cellnumber)搜索我手机上的联系人:

Contact? contact = contacts.firstWhereOrNull((c) => c.phones.contains(Phone(cellnumber)));

当我搜索不带“+”号的号码(例如12345),而联系人列表中的联系人号码不带“+”号(例如12345)时,该功能完全正常。但当我搜索带“+”号的号码(例如+12345),而联系人号码带加号(例如+12345)时,该功能就不起作用了。
有人知道为什么会这样吗?怎么解决?

oyxsuwqo

oyxsuwqo1#

如果查看the code,您会发现要使Phone类与另一个类相等,需要匹配更多组件,而不仅仅是电话号码。
因此,要只检查电话号码,您需要自己进行比较:

Contact? contact = contacts.firstWhereOrNull((c) => c.phones.any((phone) => phone.number == cellNumber);

如果这仍然不匹配,打印所有的联系人来调试它。我不知道你的联系人列表包含什么或为什么它不匹配。
有一个normalizedNumber属性,也许您需要使用它来判断是否有人使用了类似“+1(234)567-8900”的格式。

相关问题