android - 如何在android中获取电话号码的国家代码?

标签 android

我正在获取联系人的所有电话号码。然后我使用 PhoneUtil.parse() 方法检查了所有号码以获取号码类型。但是当电话号码没有保存国家代码时会出现异常。例如,电话号码类似于 9876512343 或 09876512343,这是一个印度号码。对于这个数字,我得到了解析异常。如果我这样做

PhoneNumber numberProto = phoneUtil.parse(phoneNumber, "IN");

那么这个数字就不是问题了。但是我怎么知道那个数字是印度数字,这样我就可以在那个参数中传递 IN。因此,如果我可以获得给定电话号码(字符串)的国家代码,那么它就可以解决我的问题。

最佳答案

这是我的工作代码:

TelephonyManager tm = (TelephonyManager) getApplicationContext()
                             .getSystemService(Context.TELEPHONY_SERVICE);
String phNo = tm.getLine1Number();
String country = tm.getSimCountryIso();

Log.d("PhoneNumber :", phNo);
Log.d("country :", country);

在 AndroidManifest.xml 中添加以下行

<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 

关于android - 如何在android中获取电话号码的国家代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27310993/

相关文章:

android - 为什么我得到这个 : getaddrinfo url returned an error?

android - RadioGroup 可以检查所有答案

java - 按升序/降序对 Firebase 数据进行排序

android - ActionBar 菜单项的动态可绘制图标? (安卓,ActionBarSherlock)

Android - 如何衡量 ListView 和其他 View 的性能?

java - public synchronized void run() 是一个坏主意吗?

android - 如何使此对话框在单击列表项时弹出?

java - Android - 从数组适配器中删除 <string>

android - 在 Android 中静态创建 2X2 ImageView 的 GridView

java - 错误 : cannot access Task class file for bolts