Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 正确处理电话号码(存储,最好使用唯一的形式)_Android_Phone Number - Fatal编程技术网

Android 正确处理电话号码(存储,最好使用唯一的形式)

Android 正确处理电话号码(存储,最好使用唯一的形式),android,phone-number,Android,Phone Number,这个问题不是针对Android的,但我已经包括了标签 我需要能够以某种标准形式(理想情况下是字符串)存储电话号码,这样可以快速测试/评估平等性(因此字符串将是理想的) 我已经找到了一些答案,最好的答案指向了我(我可以使用图书馆来为我做) 但这还不够好,我尝试了各种格式编号,了解了Editable factory以使用该类中的一些静态方法,但它们似乎没有返回我所期望的表单 我期望类似电话号码散列的东西,表示相同号码的两个输入将在这个“标准形式”中产生相同的结果,一个可以拨打这个标准形式就可以了。我

这个问题不是针对Android的,但我已经包括了标签

我需要能够以某种标准形式(理想情况下是字符串)存储电话号码,这样可以快速测试/评估平等性(因此字符串将是理想的)

我已经找到了一些答案,最好的答案指向了我(我可以使用图书馆来为我做)

但这还不够好,我尝试了各种格式编号,了解了Editable factory以使用该类中的一些静态方法,但它们似乎没有返回我所期望的表单

我期望类似电话号码散列的东西,表示相同号码的两个输入将在这个“标准形式”中产生相同的结果,一个可以拨打这个标准形式就可以了。我认为所有各种+s和诸如此类的东西对于这个标准表单来说都是短手

我不确定现在是否存在这样的事情

我知道有些东西的意思是“当前区域”(或国家),这就是为什么陆路线路可以使用ommit区号的原因,我希望有一个函数可以返回当前位置的格式(但这不适用于手机,例如,如果是陆路线路来预加区号,这将(更接近)标准表单)我一直假设(存在)

我很确定电话号码的完整形式是存在的,想想电话系统是如何工作的(我推断我承认),应该有一种形式可以在整个地球上唯一地识别一个号码,如果不是这样的话(比如从没有区号的陆地线路拨打的本地电话),这就是一种优化

所以我有两个问题:

如何将电话号码“扩展”为该号码的唯一字符串,以使任何其他形式的书写该号码(使用空格、0或+44…)都“扩展”到该唯一号码

是否有任何ISO(/IEC?)(O代表什么?)标准文件的草稿向公众开放?我读过维基百科页面(很久以前,我花了这么多时间浏览维基百科,打开了数百个标签),但它涵盖了历史,或一些关于格式的信息),我想知道更多关于我认为8年来理所当然的事情

另外,为什么WindowsPhone8是一个标签?让12位自豪的Lumina车主不觉得被冷落?(建议将其作为标签!)

附录

不幸的是,这里没有解决方案(包括libphonenumber),我想找出答案的努力导致了一些有趣的阅读:

我仍然不能断定数字是否有“完整形式”


我不敢创建一个简单地用+44替换0之类的解决方案。

读了你的问题后,我想起了谷歌的库,名为。它是谷歌的通用库,用于解析、格式化、存储和验证国际电话号码。它可以做以下事情(其中一些似乎是您可以使用的):

  • 分析/格式化/验证所有国家/地区的电话号码 世界的一部分
  • getNumberType-获取基于 数字本身;能够区分固定电话、移动电话、免费电话、, 保费、共享成本、VoIP和个人号码(无论何时) 可行)
  • isNumberMatch-获取两个 数字可能是相同的
  • isPossibleNumber-快速猜测一个数字是否可能 phonenumber只使用长度信息,比 完全验证
  • isValidNumber-电话号码的完整验证 用于使用长度和前缀信息的区域
  • AsYouTypeFormatter-当用户输入每个数字时,动态格式化电话号码
  • 电话号码OFFINEGEOCODER-提供与电话号码相关的地理信息
就电话号码的国际格式而言,该格式是国际电信联盟推荐的。它定义了全球公共交换电话网的编号计划,是国际电话号码的通用格式(通常带有
+
的统计数据,后跟国家代码、区号和号码)

使用上述库,如果您在提及电话号码时同时提及国际代码,则可以检查所有电话号码的有效性(例如
1
,适用于美国和加拿大)。如果您没有代码,但知道要检查号码的国家名称,那么您也可以验证。您还可以使用此库转换1标准
E.164
格式的所有有效数字。您还可以“扩展”该特定国家的本地国家格式的数字。您也可以将其另存为字符串。尽管它确实使用了您在问题中提到的
PhoneNumberUtils

我不确定这是否是您想要的,但我希望这些信息对您有所帮助。

不幸的是,“自4.0(冰激凌三明治)以来被Android框架使用”,我应该在问题中添加一个链接,谢谢您的尝试。