大佬教程收集整理的这篇文章主要介绍了Android ContentProvider查看/读取手机联系人实例,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
看到某些App里面有读取联系人的功能,然后自己尝试了一下。发现这个挺简单的。然后自己就做了一个demo给大家,希望借这个demo可以让大家学习一下怎么实现读取手机联系人。
这里我用了两种方法去读取:第一张图片是跳转到系统自带的联系人界面,第二种就是直接去读取让后绑上来显示在主页面。话不多说直接上代码。
记得在AndroidManifest.xml 记得加入这两句,不然就读取不到联系人。
<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" />
package com.example.android_contentersolver; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.database.cursor; import android.net.Uri; import android.os.bundle; import android.provider.Contacts; import android.provider.ContactsContract; import android.telephony.PhonestateListener; import android.telephony.Telephonymanager; import android.view.View; import android.view.View.onClickListener; import android.view.ViewGroup; import android.widget.baseAdapter; import android.widget.checkBox; import android.widget.ListView; import android.widget.TextView; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceStatE) { super.onCreate(savedInstanceStatE); setContentView(R.layout.activity_main); findViewById(R.id.main_btn).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //查询联系人号码 final cursor cursor = getContentResolver() .query(ContactsContract.CommonDataKinds .Phone.CONTENT_URI,null,null); BaseAdapter adapter = new BaseAdapter() { @Override public int getCount() { return cursor.getCount(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position,View convertView,ViewGroup parent) { cursor.moveToPosition(position); // checkBox rb = new checkBox(MainActivity.this); TextView text=new TextView(MainActivity.this); // 获取联系人的电话号码,并去掉中间的中划线、空格 String number = cursor .getString(cursor.getcolumnIndex( ContactsContract.CommonDataKinds .Phone.numbER)) .replace("-","") .replace(" ",""); // rb.setText(number); String name = cursor .getString(cursor.getcolumnIndex( ContactsContract.CommonDataKinds .Phone.DISPLAY_Name)); text.setText("名字:"+name+" 电话号码:"+number); return text; } }; //加载listview ListView listview=(ListView) findViewById(R.id.mian_list); listview.setAdapter(adapter); } }); //跳转系统的联系人界面 findViewById(R.id.main_btn_sys).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent=new Intent(); intent.setAction(intent.ACTION_PICK); intent.setType("vnd.android.cursor.dir/phone"); startActivityForResult(intent,0x100); } }); } @Override protected void onActivityResult(int requestCode,int resultCode,Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode,resultCode,data); Uri uri=data.getData(); cursor cursor = getContentResolver() .query(uri,null); while(cursor.moveToNext()){ String name=cursor.getString(cursor.getcolumnIndexOrThrow(Contacts.Phones.Name)); String number=cursor.getString(cursor.getcolumnIndexOrThrow(Contacts.Phones.numbER)); TextView textview=(TextView) findViewById(R.id.mian_lists); textview.setText("名字:"+name+" 电话号码:"+number); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
以上是大佬教程为你收集整理的Android ContentProvider查看/读取手机联系人实例全部内容,希望文章能够帮你解决Android ContentProvider查看/读取手机联系人实例所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。