Android:获取联系人的通话历史记录

Android:获取联系人的通话历史记录,android,calllog,Android,Calllog,我正在使用此代码获取联系人的联系信息(我也在使用它-经过一些修改-给联系人打电话、发短信或发电子邮件)。我想知道是否有办法显示某个联系人的通话记录: 字符串名称3是联系人名称 contactinfobtn.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { ContentResolver cr = getCont

我正在使用此代码获取联系人的联系信息(我也在使用它-经过一些修改-给联系人打电话、发短信或发电子邮件)。我想知道是否有办法显示某个联系人的通话记录:

字符串名称3是联系人名称

     contactinfobtn.setOnClickListener(new View.OnClickListener() 
     {
        public void onClick(View v) 
        { 
            ContentResolver cr = getContentResolver();
            Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

            if (cur.getCount() > 0) 
            {

                while (cur.moveToNext()) {
                id_contact = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
                name_contact = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                    if (name_contact.equals(name3))
                    {
                    Cursor pCur = cr.query(
                    ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
                    ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]{id_contact}, null);
                       id_contact2 = id_contact;

                        while (pCur.moveToNext()){
                        } 
                    pCur.close();
                    }
                }
                Intent intent_contacts = new Intent(Intent.ACTION_VIEW, Uri.parse("content://contacts/people/" + id_contact2));
                startActivity(intent_contacts);
            }
        }
     });
有一个名为的类,它包含对调用历史记录的to查询

下面是一个在通话记录中列出电话号码的示例:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    this.setContentView(R.layout.main);

    String[] projection = new String[] {
        CallLog.Calls._ID, CallLog.Calls.NUMBER};
    Cursor query = this.managedQuery(
        CallLog.Calls.CONTENT_URI, projection, null, null, null);

    ListAdapter adapter = new SimpleCursorAdapter(
        this, android.R.layout.simple_list_item_1, query,
        new String[] {CallLog.Calls.NUMBER},
        new int[] {android.R.id.text1});
    this.setListAdapter(adapter);
}

谢谢我还没试过,但这会跳转到某个联系人的通话记录吗?”因为这就是我想要的。顺便说一句,它说“CallLog不能解析为变量”。我用的是安卓2.1,我想出来了:)。循环遍历所有联系人,关键行是最终字符串选择=android.provider.CallLog.Calls.NUMBER+“=”+“+”+“+contactnumbers.get(i)+“”;克里斯蒂安,你能帮我做类似的事情吗。我在获取双卡android设备的通话记录时遇到了问题。这是一个很好的链接@不幸的是,我没有也没有使用过双卡android设备。我不知道如何让它起作用。