android 如何查询电话当中的联系人,并查询出联系次数

根据网上的一些资料自己学习整理的。

在查询中要注意由于android 2.0以上支持多个连续人,所以在获得联系人号码时有一定区别的。


public class GetContextActivity extends Activity {
private TextView tv = null;
private String contact_content = "";//用于保存所有查询到信息


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow();
requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.main);
      
        this.tv = (TextView) this.findViewById(R.id.tt_contact_name);
    
        this.tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
      tv.setText(contact_content);
}
});
      
    }

 public void getContact(){//获得所有联系人的资料
    ContentResolver cr =getContentResolver();
    Cursor crs = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
    while (crs.moveToNext()){
    int nameFiedColumnIndex = crs.getColumnIndex(PhoneLookup.DISPLAY_NAME);
    String contact  = crs.getString(nameFiedColumnIndex);//获得联系人姓名
    int numFiedColumnIndex = crs.getColumnIndex(PhoneLookup.TIMES_CONTACTED);
    String times = crs.getString(numFiedColumnIndex);//获得联系次数
    String contact_Id = crs.getString(crs.getColumnIndex(ContactsContract.Contacts._ID));//获得当前联系人的ID索引用于查询号码
    Cursor crs_Num = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "  
            + contact_Id, null, null);//注意第一个参数和上一个游标crs的参数是不同的。上一个是ContactsContract.Contacts.CONTENT_URI,并且第三个参数是为了得到和前面匹配的电话号码
    this.contact_content += "contact: " + contact + "   Times:" + times;
    while (crs_Num.moveToNext()){
    String strPhoneNum = crs_Num.getString(crs_Num.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
    this.contact_content += "  Number: "+strPhoneNum;
    }
    this.contact_content += "\n";
   
    }
    crs.close();
    }

}

2.0 以下查询可以使用

int nameFiedColumnIndex = crs.getColumnIndex(PhoneLookup.NUMBER);//获得联系人电话的表头ID
  String contact  = crs.getString(nameFiedColumnIndex);

总的来所整个操作不是特别复杂,也是本人第一次写博文,如果有不完善的地方,请见谅。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Android Studio中查询联系人,您需要使用ContentResolver类和ContactsContract类。以下是一些步骤: 1. 确保您的应用程序具有读取联系人和读取电话状态的权限。您可以在AndroidManifest.xml文件中添加以下行: ``` <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> ``` 2. 在您的活动中,使用ContentResolver类查询联系人。以下是一个示例代码: ``` Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); if (cursor.moveToFirst()) { do { String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); Cursor phoneCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[]{id}, null); if (phoneCursor.moveToFirst()) { do { String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); Log.d(TAG, "Name: " + name + ", Phone Number: " + phoneNumber); } while (phoneCursor.moveToNext()); } phoneCursor.close(); } while (cursor.moveToNext()); } cursor.close(); ``` 这将查询所有联系人及其电话号码,并将它们记录在日志中。 3. 如果您想将联系人信息显示在屏幕上,您可以使用ListView或RecyclerView等视图组件。您需要创建一个适配器来将联系人数据绑定到视图上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值