如果联系人没有区号,那么您认为区号是本地区号。如果它的本地区号,那么用户的电话号码必须有这个区号。因此,您可以获取用户的电话号码以确定本地区号,并将该区号应用于任何没有区号的号码。
要获得用户的电话号码,你可以使用此代码 -
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>
这是伟大的,伟大的工程,无论其怎么样有一个电话簿平板设备。 .. theres没有电话号码存储的平板电脑。因为我在我的平板电脑上测试时遇到NULL值,并且崩溃。授予即时试图赶上解决崩溃和if语句如果值为null提醒他们没有电话号码,并要求那里的联系人的地方代码。但你相信这是另一种方式吗? –
@AaronRussell啊......让事情变得更复杂一点。我现在没有任何东西,但是我试着去想一些东西。我最初的预感是,这是不可能的,因为(1)平板电脑没有电话功能,并且(2)没有区号可以使电话号码模糊不清。底线 - 我不认为除了你说的话之外还有别的方法,如果没有电话号码的话。 –
现在我知道我的问题是如何得到它,而不使用位置服务,也许我可以包装if语句,如果它的null尝试并获得位置服务?你知道我怎么能这样吗?我们可以把这个方法放在一个完整的证明方式中,并发布给所有人。 –