我使用以下代码从手机中检索联系号码列表:
Cursor c = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); while(c.moveToNext()){ Log.d(TAG,"NO.: "+ c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NORMALIZED_NUMBER))); }
在API 16及更高版本中,这对我来说非常有用,因为我想要所有以E 164格式格式化的联系人,无论用户如何存储它们.
但是,对于16以下的API,上述代码将无法使用,我无法使用以下行获取所有联系人的E 164格式:
c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
'PhoneNumberUtils'类无法使用.
另外,我不能使用libphonenumber库将数字转换为E 164格式,因为我不知道联系人的ISO 3166-1双字母国家代码.
有什么方法可以为Android中的每个联系人获取ISO 3166-1双字母国家/地区代码,以便我可以使用libphonenumber库?
或者是否有任何其他解决方案来实现第1点.
从手机检索的数字可以是任何格式,例如.
本地:965XXXXXXX
国家:0965XXXXXXX
国际:+91 96 5X XXXXXX
和别的
而E 164是+ 91XXXXXXXXXX,其中91是国家代码.
任何帮助将非常感激 !