java - startActivityForResult() 之后检索联系人姓名和电话

标签 java android

我已经开始一项新的意向 Activity 以获得结果 代码:

    Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, Phone.CONTENT_URI);  

    startActivityForResult(contactPickerIntent, 1);

现在我想获取电话和号码:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (requestCode == 1) {

        if(resultCode == RESULT_OK){

            Uri contactUri = data.getData();

            String[] pN = {Phone.NUMBER};

            String[] pNa = {Phone.CONTACT_ID};//idk

            Cursor cP = getContentResolver().query(contactUri, pN, null, null, null);
            cP.moveToFirst();

            Cursor cPa = getContentResolver().query(contactUri, pNa, null, null, null);
            cPa.moveToFirst();

            int numc = cP.getColumnIndex(Phone.NUMBER);
            String num = cP.getString(numc);

            int namec = cPa.getColumnIndex(Phone.CONTACT_ID);//idk
            String name = cPa.getString(namec);//idk

            Log.i("", name);

        }
        if (resultCode == RESULT_CANCELED) {
            //DO OTHER STUFF
        }
    }
}   

电话号码没问题,但我无法检索到联系人的名字!

最佳答案

 Uri uri = data.getData();

        Cursor cursor = getContentResolver().query(uri, null, null, null, null);

        cursor.moveToFirst();
        name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

        cursor.moveToFirst();
        number = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));

关于java - startActivityForResult() 之后检索联系人姓名和电话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23710002/

相关文章:

java - 使用 Windows 身份验证连接 Java 和 MySQL?

java - 根据判别索引创建多个源

android - 这个错误java.io.IOException : Content-Length and stream length disagree的原因是什么

java - 从相机或图库中选择图像

Java:有 @Enumerated(STRING) 但仍然得到 ClassCastException

java - JDBC和mySQL将相关数据库表转换为对象

java - 通过 SMSLib API 向手机发送 SMS 但未找到 COM 端口

android - 尝试在谷歌地图 V2 android 应用程序中获取空数组的长度

android - 如何在android中的 ListView 中将焦点设置在最后一个元素上

java - 如果玩家按住屏幕则跳得更高