java - 如何在不使用位置的情况下获取设备的区号

标签 java android addressbook phone-number

我将如何获取设备的区号?

我有一个导入脚本,我可以在其中获取联系人列表中的所有电话号码,因此我可以将其与数据库中的列表进行比较并采取相应的行动。但是我知道有些人不会为某些联系人输入区号,因为他们不需要本地号码。我需要获取那里的区号,以便我可以将其添加到我正在检查的号码中。

不是 5 位邮政编码,而是 3 位区号。

我找到的所有方法都希望我到达那里然后得到它,我不想那样做,获得 3 位数的工作太多了。

最佳答案

如果联系人没有区号,则假定区号是本地区号。如果是本地区号,那么用户的电话号码必须有这个区号。因此,您可以获得用户的电话号码以确定本地区号并将该区号应用于任何没有区号的号码。

要获取用户的电话号码,您可以使用此代码 -

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tm.getLine1Number();

复制自this问题。

然后您可以通过查看前 3 位(如果 String 的长度为 11 chars,则可能是 4 位)数字来提取区号。

String areaCode = mPhoneNumer.substring(0, mPhoneNumber.length()==10 ? 3 : 4);

注意:确保通过添加此行将 READ_PHONE_STATE 权限添加到 AndroidManifest.xml 文件 -

<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

关于java - 如何在不使用位置的情况下获取设备的区号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18941471/

相关文章:

java - 你如何在Java中减去日期?

java - Java 中具有多个条件的三元运算符抛出错误

java - 如何全局设置 RenderingHints?

android - 尝试将 gradle 与新库同步时出错

IOS Objective-c - 让联系人不起作用 - 没有请求提示 - 访问被拒绝

c# - 为什么我的 C# 代码不能添加到列表中并显示它?

java - Websphere 8.5.0.2 抛出不兼容的 java 版本

android - 如何在android中显示 Assets 文件夹中的图像?

Android:Ratingbar 步长低于 0.5

gmail - Quora 是如何实现通讯录导入的?