用于获取相同国家/地区代码的国家/地区名称的 Google libphone 号码

ser*_*ces 5 java libphonenumber

如何使用 Google 的 libphone 号码https://github.com/googlei18n/libphonenumber来查看电话号码是否是加拿大或美国的电话号码,因为它们共享相同的国家/地区代码?

例如:+1415-555-0123 是美国、旧金山 +1647-555-0123 是加拿大、多伦多

只需提供电话号码,我就需要获取国家/地区名称。

当我尝试类似以下内容时,它返回“true”,而我的期望是它应该返回 false,因为电话号码不是美国号码而是加拿大号码。

 PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
 boolean isPossible = phoneUtil.isPossibleNumber("+16475550123", "US");
Run Code Online (Sandbox Code Playgroud)

hea*_*uck 1

您可能正在寻找PhoneNumberUtil.isValidNumberForRegion(). 从它的文档来看,它

测试电话号码对于特定区域是否有效。请注意,这并不能验证该号码是否实际在使用中,仅通过查看号码本身是无法判断的。如果国家/地区呼叫代码与该地区的国家/地区呼叫代码不同,则会立即退出并返回 false。此后,检查该地区的具体号码模式规则。例如,这对于确定特定号码是否对加拿大有效(而不仅仅是有效的 NANPA 号码)非常有用。