我需要使用所有电话号码来检索所有联系人,在json对象中发送电子邮件ID,例如(示例单个联系人对象):
[{
"id": 123,
"displayName": "Name",
"company": "Company",
"title": "Title",
"numbers": [{
"type": "home",
"number": "957842"
}, {
"type": "work",
"number": "54654654"
}, {
"type": "other",
"number": "465454"
}, {
"type": "other",
"number": "5465431"
}, {
"type": "other",
"number": "54321"
}, {
"type": "other",
"number": "6546545"
}],
"emails": [{
"type": "home",
"email": "asd@gmail.com"
}, {
"type": "work",
"email": "asdas@gmail.com"
}, {
"type": "other",
"email": "asdasd@gmail.com"
}, {
"type": "other",
"email": "sdasdmail.com"
}]
}]
我当前代码中的代码段如下:
String searchQuery = "_id > " + lastReadId;
Cursor contactUrl = cContext.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,searchQuery,null,"_id ASC");
Log.e(TAG, "getContact >> " + contactUrl.getCount());
while (contactUrl.moveToNext())
{
objChild = new JSONObject();
String name=contactUrl.getString(contactUrl.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String number=contactUrl.getString(contactUrl.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
int phoneContactID = contactUrl.getInt(contactUrl.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID));
int phone_type = contactUrl.getInt(contactUrl.getColumnIndex(Phone.TYPE));
objChild.put("name",name);
objChild.put("number",number);
objChild.put("phone_type", number);
Log.e(TAG, "objChild : " + objChild.toString());
我目前的联系方式如下:
http://i.stack.imgur.com/MNuWH.png
http://i.stack.imgur.com/fs8Qk.png
我在stackoverflow中获得的代码是给我单个联系人的电话号码或多个联系人,这些联系人有多个号码(我可以操作相同,但这会花费很多时间并可能导致性能问题)
我的要求是获取所有电话号码&单个联系人的电子邮件。
答案 0 :(得分:0)
我建议您在项目中使用Gson进行简单的JSON解析
第1步
打开 jsonschema2pojo 网站。
Ste 2
在给定空间中复制/粘贴JSON字符串,并选择以下选项以与Gson一起使用。
第3步
点击 预览 按钮即可获得现成的课程。复制粘贴应用程序中的完整类。否则,您也可以选择 jar 来获取课程。
Ste 4
下载并添加Gson库到您的项目
下载Gson:google-gson
第5步
最后一步。写下面的短代码行将JSON字符串转换为类对象
Gson gson = new Gson();
List<PersonBean> details = gson.fromJson(strJsonData, PersonBean.class);
参考文献: