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

时间:2013-09-22 07:36:15

标签: java android addressbook phone-number

我如何获取设备的区号?

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

this问题复制。

然后你可以通过查看前3个(或者如果String的长度是11 char s)数字,可以提取区号。

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>