我将如何获取设备的区号?
我有一个导入脚本,在该脚本中,即时通讯会抓取联系人列表中的所有电话号码,因此我可以将其与数据库中的列表进行比较,并据此采取措施。但是,我知道有些人不会为某些联系人添加区号,因为他们不需要本地号码。我需要到达区号,以便我可以将其添加到即时消息检查中。
不是邮政编码的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>