Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.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
从android&;转换为JSON_Android_Listview_Android Contacts - Fatal编程技术网

从android&;转换为JSON

从android&;转换为JSON,android,listview,android-contacts,Android,Listview,Android Contacts,如何从这些信息中获取所有信息,如主要和次要手机号码、电子邮件、传真、图像以及制作json数组 目前我可以获得primaryContact和一个姓名。我可以在自定义列表视图中显示它们,就像whats应用程序一样。您可以使用类似的内容阅读联系人,我在我的应用程序中使用了它,它正在工作: Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, n

如何从这些信息中获取所有信息,如主要和次要手机号码、电子邮件、传真、图像以及制作json数组


目前我可以获得primaryContact和一个姓名。我可以在自定义列表视图中显示它们,就像whats应用程序一样。

您可以使用类似的内容阅读联系人,我在我的应用程序中使用了它,它正在工作:

Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
if(光标!=null){
如果(cursor.getCount()>0){

String id=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataTypes.Phone.CONTACT_id));
字符串名称=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataTypes.Phone.DISPLAY_name));
String number=cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataTypes.Phone.number));
}
}
}

下面是一些在服务器上发布数据的示例:


希望这些能对您有所帮助。

您可以使用以下简单代码创建一个json对象:目前,我正在获取所有联系人的所有电话号码、电子邮件、组织详细信息和标题

注意:您需要阅读联系人权限

Kotlin中的代码:

private fun getContacts(): JsonArray {

    val resolver: ContentResolver = contentResolver
    val cursor = resolver.query(
        ContactsContract.Contacts.CONTENT_URI, null, null, null,
        null
    )
    val mainJsonArray: JsonArray = JsonArray()
    if (cursor!!.count > 0) {
        while (cursor.moveToNext()) {
            val personJsonObj: JsonObject = JsonObject()
            val id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID))
            val name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))
            //val phoneNumber = (cursor.getString( cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER) )).toInt()
            personJsonObj.addProperty("NAME", name.replace("\\", "\\\\").replace("'", "\\'").replace("\"", "\\\""))

            val orgCursor = getContentResolver().query(
                ContactsContract.Data.CONTENT_URI, null,
                ContactsContract.Data.CONTACT_ID + "=?", arrayOf(id), null
            )

            val phoneJsonArray = JsonArray()
            val emailJsonArray = JsonArray()

            if (orgCursor!!.count > 0) {
                while (orgCursor.moveToNext()) {
                    if (orgCursor!!.getString(orgCursor.getColumnIndex(ContactsContract.Data.MIMETYPE)).equals(
                            ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE
                        )
                    ) {
                        val companyName = orgCursor.getString(orgCursor.getColumnIndex(ContactsContract.Data.DATA1))
                        val designation = orgCursor.getString(orgCursor.getColumnIndex(ContactsContract.Data.DATA4))
                        personJsonObj.addProperty(
                            "ORGANIZATION",
                            companyName.replace("\\", "\\\\").replace("'", "\\'").replace("\"", "\\\"")
                        )
                        personJsonObj.addProperty(
                            "DESIGNATION",
                            designation.replace("\\", "\\\\").replace("'", "\\'").replace("\"", "\\\"")
                        )

                    } else if (orgCursor!!.getString(orgCursor.getColumnIndex(ContactsContract.Data.MIMETYPE)).equals(
                            ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE
                        )
                    ) {
                        val phoneNum = orgCursor.getString(orgCursor.getColumnIndex(ContactsContract.Data.DATA1))
                        phoneJsonArray.add(phoneNum.replace(" ", "").replace("-", ""))
                    } else if (orgCursor!!.getString(orgCursor.getColumnIndex(ContactsContract.Data.MIMETYPE)).equals(
                            ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE
                        )
                    ) {
                        val emailAddr = orgCursor.getString(orgCursor.getColumnIndex(ContactsContract.Data.DATA1))
                        emailJsonArray.add(emailAddr.replace(" ", ""))
                    }
                }
            }
            orgCursor.close()
            personJsonObj.add("EMAIL_LIST", emailJsonArray)
            personJsonObj.add("PHONE_NUMBERS", phoneJsonArray)
            mainJsonArray.add(personJsonObj)
        }

    }
    cursor.close()
    return mainJsonArray
}
    [{
        "NAME": "Test User Test User Last Name",
        "ORGANIZATION": "Some Company",
        "DESIGNATION": "Associate",
        "EMAIL_LIST": ["testuser@organiztion.com", "testuser1@org.com"],
        "PHONE_NUMBERS": ["123456789", "9808776"]
    }, {
        "NAME": "User One",
        "ORGANIZATION": "Test Company",
        "DESIGNATION": "Owner",
        "EMAIL_LIST": ["abc1@test.com", "abc2@test.com", "abc3@test.com", "abc4@test.com"],
        "PHONE_NUMBERS": ["7777", "8888", "9999"]
    }]
结果JsonArray:

private fun getContacts(): JsonArray {

    val resolver: ContentResolver = contentResolver
    val cursor = resolver.query(
        ContactsContract.Contacts.CONTENT_URI, null, null, null,
        null
    )
    val mainJsonArray: JsonArray = JsonArray()
    if (cursor!!.count > 0) {
        while (cursor.moveToNext()) {
            val personJsonObj: JsonObject = JsonObject()
            val id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID))
            val name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME))
            //val phoneNumber = (cursor.getString( cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER) )).toInt()
            personJsonObj.addProperty("NAME", name.replace("\\", "\\\\").replace("'", "\\'").replace("\"", "\\\""))

            val orgCursor = getContentResolver().query(
                ContactsContract.Data.CONTENT_URI, null,
                ContactsContract.Data.CONTACT_ID + "=?", arrayOf(id), null
            )

            val phoneJsonArray = JsonArray()
            val emailJsonArray = JsonArray()

            if (orgCursor!!.count > 0) {
                while (orgCursor.moveToNext()) {
                    if (orgCursor!!.getString(orgCursor.getColumnIndex(ContactsContract.Data.MIMETYPE)).equals(
                            ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE
                        )
                    ) {
                        val companyName = orgCursor.getString(orgCursor.getColumnIndex(ContactsContract.Data.DATA1))
                        val designation = orgCursor.getString(orgCursor.getColumnIndex(ContactsContract.Data.DATA4))
                        personJsonObj.addProperty(
                            "ORGANIZATION",
                            companyName.replace("\\", "\\\\").replace("'", "\\'").replace("\"", "\\\"")
                        )
                        personJsonObj.addProperty(
                            "DESIGNATION",
                            designation.replace("\\", "\\\\").replace("'", "\\'").replace("\"", "\\\"")
                        )

                    } else if (orgCursor!!.getString(orgCursor.getColumnIndex(ContactsContract.Data.MIMETYPE)).equals(
                            ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE
                        )
                    ) {
                        val phoneNum = orgCursor.getString(orgCursor.getColumnIndex(ContactsContract.Data.DATA1))
                        phoneJsonArray.add(phoneNum.replace(" ", "").replace("-", ""))
                    } else if (orgCursor!!.getString(orgCursor.getColumnIndex(ContactsContract.Data.MIMETYPE)).equals(
                            ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE
                        )
                    ) {
                        val emailAddr = orgCursor.getString(orgCursor.getColumnIndex(ContactsContract.Data.DATA1))
                        emailJsonArray.add(emailAddr.replace(" ", ""))
                    }
                }
            }
            orgCursor.close()
            personJsonObj.add("EMAIL_LIST", emailJsonArray)
            personJsonObj.add("PHONE_NUMBERS", phoneJsonArray)
            mainJsonArray.add(personJsonObj)
        }

    }
    cursor.close()
    return mainJsonArray
}
    [{
        "NAME": "Test User Test User Last Name",
        "ORGANIZATION": "Some Company",
        "DESIGNATION": "Associate",
        "EMAIL_LIST": ["testuser@organiztion.com", "testuser1@org.com"],
        "PHONE_NUMBERS": ["123456789", "9808776"]
    }, {
        "NAME": "User One",
        "ORGANIZATION": "Test Company",
        "DESIGNATION": "Owner",
        "EMAIL_LIST": ["abc1@test.com", "abc2@test.com", "abc3@test.com", "abc4@test.com"],
        "PHONE_NUMBERS": ["7777", "8888", "9999"]
    }]

为什么要将其转换为JSON?您可以从手机中读取联系人(姓名、号码等),并将其显示在listviewHello Yupi中,感谢您的快速回复。。。我需要将他们(联系人)发送到服务器