当前位置: 代码迷 >> Android >> Android学习之经过content provider获得联系人
  详细解决方案

Android学习之经过content provider获得联系人

热度:8   发布时间:2016-05-01 16:43:16.0
Android学习之通过content provider获得联系人
package cn.mycontent;import android.app.Activity;import android.content.ContentResolver;import android.database.Cursor;import android.graphics.Color;import android.net.Uri;import android.os.Bundle;import android.provider.BaseColumns;import android.provider.ContactsContract;import android.widget.TextView;public class Activity01 extends Activity {	//查询Content Provider时希望返回的列	String [] columns = {			ContactsContract.Contacts.DISPLAY_NAME,			ContactsContract.Contacts._ID,            //People._ID,			//People.NAME	};		Uri contactUri = ContactsContract.Contacts.CONTENT_URI;	TextView tv;	//Uri contaUri = Contacts.People.CONTENT_URI;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        tv = (TextView)findViewById(R.id.tv);        String result = getQueryData();        tv.setTextColor(Color.GREEN);        tv.setTextSize(20.0f);        tv.setText("ID\t名字\n" + result);            }    //获取联系人列表的信息,返回 String对象    public String getQueryData(){    	String result = "";    	//获取ContentResolver对象    	ContentResolver resolver = getContentResolver();    	Cursor cursor = resolver.query(contactUri, columns, null, null, null);    	//获得_ID字段的索引    	int idIndex = cursor.getColumnIndex(BaseColumns._ID);    	//获得Name字段的索引    	int nameIndex = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);    	//遍历Cursor提取数据    	for (cursor.moveToFirst();(!cursor.isAfterLast());cursor.moveToNext()) {			result = result + cursor.getString(idIndex) + "\t";			result = result + cursor.getString(nameIndex)+ "\t\n";		}    	cursor.close();    	return result;    }}

?

需加上<uses-permission android:name="android.permission.READ_CONTACTS" />权限

?

附件为自定义content provider

  相关解决方案