我将如何获取设备的区号?
我有一个导入脚本,我可以在其中获取联系人列表中的所有电话号码,因此我可以将其与数据库中的列表进行比较并采取相应的行动。但是我知道有些人不会为某些联系人输入区号,因为他们不需要本地号码。我需要获取那里的区号,以便我可以将其添加到我正在检查的号码中。
不是 5 位邮政编码,而是 3 位区号。
我找到的所有方法都希望我到达那里然后得到它,我不想那样做,获得 3 位数的工作太多了。
最佳答案
如果联系人没有区号,则假定区号是本地区号。如果是本地区号,那么用户的电话号码必须有这个区号。因此,您可以获得用户的电话号码以确定本地区号并将该区号应用于任何没有区号的号码。
要获取用户的电话号码,您可以使用此代码 -
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tm.getLine1Number();
复制自this问题。
然后您可以通过查看前 3 位(如果 String
的长度为 11 char
s,则可能是 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/