Android获取联系人信息[名字,手机,电话,公司名称,昵称]
来源:互联网 发布:今日头条mac版下载 编辑:程序博客网 时间:2024/04/30 21:53
Android获取联系人信息[名字,手机,电话,公司名称,昵称]
直接实例化ContactUril类传入Context对象后,调用getContactInfo方法就可以获取,获取的为拼接好的JSON串,数据Demo会在最下面给出。
public class ContactUtil { private List<Contacts> list; private Context context; private JSONObject mailObject; private JSONArray jsonObject; private JSONArray phoneArray; public ContactUtil(Context context) { this.context = context; } // ContactsContract.Contacts.CONTENT_URI= content://com.android.contacts/contacts; // ContactsContract.Data.CONTENT_URI = content://com.android.contacts/data; /** * 得到所属列后,记住这些值,访问数据库的速度可以提高两倍 */ public static final int RAW_CONTACT_ID=42; public static final int MIMETYPE=8; public static final int DISPLAY_NAME=51; public static final int TYPE=71; public static final int NUMBER=51; public static final int COMPANY=51; public static final int NAME=51; /** * 获取联系人信息,并把数据转换成json数据 * * @return * @throws JSONException */ public String getContactInfo() throws JSONException { jsonObject = new JSONArray(); list = new ArrayList<>(); String mimetype = ""; int oldrid = -1; int contactId = -1; int numm = 0; // 1.查询通讯录所有联系人信息,通过id排序,我们看下android联系人的表就知道,所有的联系人的数据是由RAW_CONTACT_ID来索引开的 // 所以,先获取所有的人的RAW_CONTACT_ID ContentResolver resolver = context.getContentResolver(); Cursor cursor = resolver.query(ContactsContract.Data.CONTENT_URI, null, null, null, Data.RAW_CONTACT_ID); while (cursor.moveToNext()) {/** int a=cursor.getColumnIndex(Data.RAW_CONTACT_ID);*/ contactId = cursor.getInt(RAW_CONTACT_ID); if (oldrid != contactId) { mailObject = new JSONObject(); phoneArray = new JSONArray(); jsonObject.put(mailObject); numm++; oldrid = contactId;/** mailObject.put("contactId",contactId);*/ mailObject.put("insert_time", ""); } // 取得mimetype类型,扩展的数据都在这个类型里面 /** int b=cursor.getColumnIndex(Data.MIMETYPE);*/ mimetype = cursor.getString(MIMETYPE); // 1.1,拿到联系人的各种名字 if (StructuredName.CONTENT_ITEM_TYPE.equals(mimetype)) {/** int c=cursor.getColumnIndex(StructuredName.DISPLAY_NAME);*/ String display_name = cursor.getString(DISPLAY_NAME); mailObject.put("display_name", display_name); } // 1.2 获取各种电话信息 if (Phone.CONTENT_ITEM_TYPE.equals(mimetype)) { JSONObject phoneObject = new JSONObject();/** int g=cursor.getColumnIndex(Phone.TYPE);*/ int phoneType = cursor.getInt(TYPE); // 电话 if (phoneType == Phone.TYPE_HOME) {/** int d=cursor.getColumnIndex(Phone.NUMBER);*/ String homeNum = cursor.getString(NUMBER); phoneObject.put("type", "电话"); phoneObject.put("number", homeNum); phoneArray.put(phoneObject); } // 手机 if (phoneType == Phone.TYPE_MOBILE) {/** int d=cursor.getColumnIndex(Phone.NUMBER);*/ String mobile = cursor.getString(NUMBER); phoneObject.put("type", "手机"); phoneObject.put("number", mobile); phoneArray.put(phoneObject); } } //公司名称 if (Organization.CONTENT_ITEM_TYPE.equals(mimetype)) {/** int e=cursor.getColumnIndex(Organization.COMPANY);*/ String company = cursor.getString(COMPANY); mailObject.put("company",company); } //昵称 if (Nickname.CONTENT_ITEM_TYPE.equals(mimetype)) {/** int f=cursor.getColumnIndex(Nickname.NAME);*/ String nick_name = cursor.getString(NAME); mailObject.put("nick_name",nick_name); } mailObject.put("numbers",phoneArray); } cursor.close(); return jsonObject.toString(); }}
取出的数据例子:
"device_contacts":[
{
"numbers": [
{
"type": "手机",
"number": "1 326-343-7884"
},
{
"type": "电话",
"number": "(555) 555-55"
}
],
"display_name": "Duffy",
"company": "Foggy",
"nick_name": "Foggy"
},
{
"numbers": [
{
"type": "手机",
"number": "1 326-343-7883"
},
{
"type": "电话",
"number": "(444) 444-44"
}
],
"display_name": "Wersdf",
"company": "Sdfsdf",
"nick_name": "Sdfsdfsdf"
},
{
"numbers": [
{
"type": "手机",
"number": "1 352-421-5398"
},
{
"type": "电话",
"number": "555-5555"
}
],
"display_name": "Xingming",
"company": "Gongsi",
"nick_name": "Nicheng"
}
]
- Android获取联系人信息[名字,手机,电话,公司名称,昵称]
- android获取手机联系人信息(电话,邮箱,姓名,头像)
- 手机联系人信息获取(头像,电话,姓名)
- android 获取手机联系人信息
- Android 获取手机联系人信息
- android 获取手机联系人信息
- Android 获取手机联系人信息
- Android 获取手机联系人信息
- Android获取手机联系人姓名电话
- android获取手机电话信息
- 获取手机联系人姓名,电话
- Android获取手机内联系人信息
- Android获取手机联系人信息的方法
- 【Android】获取手机通讯录中的联系人信息
- Android中获取手机中的联系人信息
- Android初级教程获取手机系统联系人信息
- Android ContentResolver ContactsContract 获取手机联系人信息
- Android中获取手机中的联系人信息
- WeakReference
- Selenium(二)
- 【Java 八进制转换十进制】POJ
- AgileEAS.NET SOA 中间件/敏捷软件开发平台
- Spring + jdbcJdbcTemplate 配置声明式事务
- Android获取联系人信息[名字,手机,电话,公司名称,昵称]
- 服务器上搭建tomcat并发布自己的web项目
- Java8支持带下划线的数字常量
- leetcode题解-459. Repeated Substring Pattern && 443. String Compression && 434. Number of Segments in
- DEMO大师
- Element type "EditText" must be followed by either attribute specifications, ">" or "/>".
- SQL优化:一篇文章说清楚Oracle Hint的正确使用姿势
- Jboss那些事
- Web自动化测试:超详细的环境搭建步骤