查询联系人姓名和电话

来源:互联网 发布:背单词的app 知乎 编辑:程序博客网 时间:2024/05/01 03:27

1、布局文件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TextView        android:id="@+id/result"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textColor="@android:color/black"        android:textSize="25dp" /></LinearLayout>

2、MainActivity

public class MainActivity extends Activity {private String[] columns = {Contacts._ID,//获得ID值Contacts.DISPLAY_NAME,//获取姓名Phone.NUMBER,//获得电话Phone.CONTACT_ID};    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TextView tv = (TextView)findViewById(R.id.result);        tv.setText(getQueryData());//为标签设置数据    }    private String getQueryData(){    StringBuilder sb = new StringBuilder();//用于保存字符串    ContentResolver resolver = getContentResolver();//获得ContentResolver对象    Cursor cursor = resolver.query(Contacts.CONTENT_URI, null, null, null, null);//查询记录    while(cursor.moveToNext()){    int idIndex = cursor.getColumnIndex(columns[0]);//获得ID值得索引    int displayNameIndex = cursor.getColumnIndex(columns[1]);//获得姓名索引    int id  = cursor.getInt(idIndex);//获得id    String displayName = cursor.getString(displayNameIndex);//获得名称    Cursor phone = resolver.query(Phone.CONTENT_URI, null, columns[3]+"="+id, null, null);    while(phone.moveToNext()){    int phoneNumberIndex = phone.getColumnIndex(columns[2]);//获得电话索引    String phoneNumber = phone.getString(phoneNumberIndex);//获得电话    sb.append(displayName+":"+phoneNumber+"\n");//保存数据    }    }    cursor.close();//关闭cursor    return sb.toString();    }}

3、AndroidManifest设置读取联系人记录的权限

  <uses-permission android:name="android.permission.READ_CONTACTS"/>


0 0
原创粉丝点击