在Android API中获取E 164格式的联系人少于16

 姜漂亮真可爱w0 发布于 2023-02-13 08:42

我使用以下代码从手机中检索联系号码列表:

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是国家代码.

任何帮助将非常感激 !

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有