gpt4 book ai didi

android - 联络号码格式的差异

转载 作者:行者123 更新时间:2023-11-30 01:42:34 25 4
gpt4 key购买 nike

我正在开发一个短信拦截器,我需要在数据库中保存联系电话并将它们与短信发件人进行比较。我的安卓手机上只安装了默认的 SMS 应用程序。但是从以下代码中选择的联系电话格式有所不同:

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(intent, PICK_CONTACT);

当我使用广播接收器接收 SMS 时(请参阅以下代码段):

SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String number = phoneNumber;
String message = currentMessage.getDisplayMessageBody();

我的联系人列表中的电话号码格式如“033-xxxx-xxxx”,没有国家代码,但 SMS Broadcast Receiver 将国家代码添加到号码中,如“+92331xxxxxxx”。

我的问题(a) 是为什么 SMS 接收器使用的格式与保存在我的联系人列表中的格式不同,(b) 我如何在我的联系人列表中比较这些数字短信广播接收器。

最佳答案

查看 PhoneNumberUtils .您需要让操作系统帮助您,因为它可以是国际号码。

使用 String incomingNumber = PhoneNumberUtils.formatNumber(incomingNumber,defaultCountryIso);

在两个数字上,然后比较它们。
要比较你这样做:

   boolean SameNumber= PhoneNumberUtils.compare(phoneNumber, otherPhoneNumber)
//if true, numbers are the same

关于android - 联络号码格式的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34248584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com