contentresovler获取联系人

package com.example.contentprovider;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
 private ContentResolver crl;
 private List<User> lu=new ArrayList<User>();
 private ListView lv;
 private Uri uri;
 private Uri uridata;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  crl=getContentResolver();
  lv=(ListView)findViewById(R.id.listView1);
   uri=Uri.parse("content://com.android.contacts/raw_contacts");
   uridata=Uri.parse("content://com.android.contacts/data");
 }
 public void add(View v){
  ContentValues values=new ContentValues();
  values.put("contact_id", "3");
  crl.insert(uri, values);
  
 }
 public void query(View v){
  
  
  Cursor cursor = crl.query(uri, null, null, null, null);
  while(cursor.moveToNext()){
   
   String id=cursor.getString(cursor.getColumnIndex("contact_id"));
   if(id==null)
    continue;
   User u=new User();
   Cursor cursor2 = crl.query(uridata, null, "raw_contact_id=?", new String[]{String.valueOf(id)}, null);
   while(cursor2.moveToNext()){
    String data=cursor2.getString(cursor2.getColumnIndex("data1"));
    String mimetype=cursor2.getString(cursor2.getColumnIndex("mimetype"));
   
    if("vnd.android.cursor.item/name".equals(mimetype)){
     u.setName(data);
    }else if("vnd.android.cursor.item/phone_v2".equals(mimetype)){
     u.setPhone(data);
    }
    
   }
   lu.add(u);
  }
  
  lv.setAdapter(new Adapter());
  
 }
 
 class Adapter extends BaseAdapter{
  @Override
  public int getCount() {
   // TODO Auto-generated method stub
   return lu.size();
  }
  @Override
  public Object getItem(int position) {
   // TODO Auto-generated method stub
   return lu.get(position);
  }
  @Override
  public long getItemId(int position) {
   // TODO Auto-generated method stub
   return position;
  }
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   // TODO Auto-generated method stub
   User u=lu.get(position);
    convertView=View.inflate(MainActivity.this, R.layout.list, null);
    TextView tv1=(TextView)convertView.findViewById(R.id.textView1);
    TextView tv2=(TextView)convertView.findViewById(R.id.textView2);
    tv1.setText("姓名:"+u.getName());
    tv2.setText("电话:"+u.getPhone());
   return convertView;
  }
  
 }
}



清单文件中的权限

android:name="android.permission.WRITE_CONTACTS"/>
    <uses-permission android:name="android.permission.READ_CONTACTS"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值