2013-09-22 38 views
1

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

我有一个导入脚本,即时通讯获取联系人列表中的所有电话号码,所以我可以将其与我的数据库中的列表进行比较并采取相应的行动。然而,我知道有些人不会为某些联系人提供区号,因为他们不需要为当地的号码。我需要得到那里区号,所以我可以将它添加到数字检查。

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

我发现的所有方式都希望我能够到达那里,然后得到它,我不想那样做,那太多工作得到3位数字了。

回答

1

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

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

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

this问题复制。

然后,您可以通过查看前3位(或可能4位,如果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> 
+0

这是伟大的,伟大的工程,无论其怎么样有一个电话簿平板设备。 .. theres没有电话号码存储的平板电脑。因为我在我的平板电脑上测试时遇到NULL值,并且崩溃。授予即时试图赶上解决崩溃和if语句如果值为null提醒他们没有电话号码,并要求那里的联系人的地方代码。但你相信这是另一种方式吗? –

+1

@AaronRussell啊......让事情变得更复杂一点。我现在没有任何东西,但是我试着去想一些东西。我最初的预感是,这是不可能的,因为(1)平板电脑没有电话功能,并且(2)没有区号可以使电话号码模糊不清。底线 - 我不认为除了你说的话之外还有别的方法,如果没有电话号码的话。 –

+0

现在我知道我的问题是如何得到它,而不使用位置服务,也许我可以包装if语句,如果它的null尝试并获得位置服务?你知道我怎么能这样吗?我们可以把这个方法放在一个完整的证明方式中,并发布给所有人。 –

相关问题