Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中:如何检索我所有联系人的所有电话号码和所有电子邮件(主要、工作、其他)_Java_Android_Android Contacts - Fatal编程技术网

Java 在Android中:如何检索我所有联系人的所有电话号码和所有电子邮件(主要、工作、其他)

Java 在Android中:如何检索我所有联系人的所有电话号码和所有电子邮件(主要、工作、其他),java,android,android-contacts,Java,Android,Android Contacts,我需要在json对象中检索具有所有电话号码、电子邮件ID的所有联系人,如(示例单个联系人对象): 我当前代码中的代码段如下所示: String searchQuery = "_id > " + lastReadId; Cursor contactUrl = cContext.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,searchQuery,

我需要在json对象中检索具有所有电话号码、电子邮件ID的所有联系人,如(示例单个联系人对象):

我当前代码中的代码段如下所示:

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());
我目前的联系方式如下:

无论我在stackoverflow中得到的代码是给我一个联系人电话号码还是多个联系人有多个号码(我可以处理相同的号码,但这需要很长时间,可能会导致性能问题)

我的要求是获取单个联系人的所有电话号码和电子邮件ID。

我建议您在项目中使用JSON解析

步骤1

打开网站

Ste 2

在给定空间中复制/粘贴JSON字符串,并选择以下选项与Gson一起使用

  • 根据需要输入packagename和classname
  • 选择JSON作为源类型
  • 选择Gson作为注释样式

步骤3

点击预览按钮,准备好课程。在应用程序中复制粘贴完整类。否则您也可以选择jar来获取类

Ste 4

下载Gson库并将其添加到项目中

下载Gson:

步骤5

最后一步。在下面写一行代码,将JSON字符串转换为类对象

Gson gson = new Gson();
List<PersonBean> details = gson.fromJson(strJsonData, PersonBean.class);
Gson-Gson=new-Gson();
List details=gson.fromJson(strJsonData,PersonBean.class);
参考资料:


这是直接从url获取的
JSON
还是从某个网站数据库获取的…你检查过我的解决方案吗?Hi@ChintanRathod:请注意你的回答,但我关心的不是JSON,我关心的是获取所有联系人的号码。e、 g我可以在同一联系人中添加200个号码和电子邮件。我需要所有这些信息。你能帮我查一下吗?@Mohit:这是我手工制作的json,我想用它来格式化我的联系人。我的问题不是json结构,而是获取联系人数据。你能在你的代码中显示你正在解析json的位置吗..我的意思是必须尝试简单的json解析并从中提取字符串..嗨,Chintan,请注意你的回答,但我关心的不是json,我关心的是获取所有联系人的号码。e、 g我可以在同一联系人中添加200个号码和电子邮件。我需要所有这些信息。你能帮我查一下吗?@SunnyKhanuja这会给你一张有电话和电子邮件的名单。使用此技术解析后将生成List和List。至少试一次。
Gson gson = new Gson();
List<PersonBean> details = gson.fromJson(strJsonData, PersonBean.class);