android 使用内容提供者获取手机联系人
2017-05-09 11:03
405 查看
直接上代码:
清单文件中的权限:
获取联系人代码:
具体代码:
清单文件中的权限:
//读联系人的权限 <uses-permission android:name="android.permission.READ_CONTACTS" /> //写联系人的权限 <uses-permission android:name="android.permission.WRITE_CONTACTS" />
获取联系人代码:
private void initHuoQU() { //得到内存分析者 ContentResolver contentResolver = getContentResolver(); //用查询的方法里面几个参数一定不要写错 //先查询RawContacts.CONTENT_URI表拿到联系人id Cursor query = contentResolver.query(RawContacts.CONTENT_URI,new String[]{RawContacts._ID}, null, null, null); //然后拿着联系人id去data表查询属于该联系人的信息 while (query.moveToNext()){ long id = query.getLong(0); HashMap<String, String> item = new HashMap(); Cursor cursor2 = contentResolver.query(Data.CONTENT_URI, new String[]{Data.DATA1, Data.MIMETYPE}, Data.RAW_CONTACT_ID + "=?", new String[]{id + ""}, null); //得到data字段的值,就是联系人的信息,通过type判断是什么类型的信息 while (cursor2.moveToNext()){ String type = cursor2.getString(1); String data = cursor2.getString(0); //联系人姓名 if (CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE.equals(type)){ item.put("name", data); } //联系人电话 else if (CommonDataKinds.Phone.CONTENT_ITEM_TYPE.equals(type)){ item.put("phone", data); } } list.add(item); } lv.setAdapter(new MyAdapter()); }
具体代码:
public class MainActivity extends ActionBarActivity{
ArrayList<HashMap<String, String>> list=new ArrayList<HashMap<String,String>>();
private ListView lv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv);
initHuoQU();
}
public class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return list.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHander vh=null;
if (convertView==null) {
convertView=View.inflate(MainActivity.this, R.layout.aaa, null);
af3a
vh=new ViewHander();
vh.tv=(TextView) convertView.findViewById(R.id.tv);
vh.tv2=(TextView) convertView.findViewById(R.id.tv2);
convertView.setTag(vh);
}else {
vh=(ViewHander) convertView.getTag();
}
vh.tv.setText(list.get(position).get("name"));
vh.tv2.setText(list.get(position).get("phone"));
return convertView;
}
class ViewHander{
TextView tv,tv2;
}
}
private void initHuoQU() { //得到内存分析者 ContentResolver contentResolver = getContentResolver(); //用查询的方法里面几个参数一定不要写错 //先查询RawContacts.CONTENT_URI表拿到联系人id Cursor query = contentResolver.query(RawContacts.CONTENT_URI,new String[]{RawContacts._ID}, null, null, null); //然后拿着联系人id去data表查询属于该联系人的信息 while (query.moveToNext()){ long id = query.getLong(0); HashMap<String, String> item = new HashMap(); Cursor cursor2 = contentResolver.query(Data.CONTENT_URI, new String[]{Data.DATA1, Data.MIMETYPE}, Data.RAW_CONTACT_ID + "=?", new String[]{id + ""}, null); //得到data字段的值,就是联系人的信息,通过type判断是什么类型的信息 while (cursor2.moveToNext()){ String type = cursor2.getString(1); String data = cursor2.getString(0); //联系人姓名 if (CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE.equals(type)){ item.put("name", data); } //联系人电话 else if (CommonDataKinds.Phone.CONTENT_ITEM_TYPE.equals(type)){ item.put("phone", data); } } list.add(item); } lv.setAdapter(new MyAdapter()); }
}
相关文章推荐
- android 使用内容提供者获取手机联系人
- Android例子—内容提供者操作手机联系人
- Project——使用内容提供者从通讯录中获取联系人或添加联系人
- Android 获取手机联系人以及短信内容
- Android 使用AsyncTaskLoader获取手机联系人
- Android 使用ContentProvider(内容提供者)查询手机联系
- Android初级教程之内容提供者获取联系人信息
- Android使用AsyncQueryHandler实现获取手机联系人功能
- 内容提供者获取手机联系人
- 无废话Android之内容观察者ContentObserver、获取和保存系统的联系人信息、网络图片查看器、网络html查看器、使用异步框架Android-Async-Http(4)
- Android初级教程之内容提供者获取联系人信息
- android 获取手机联系人信息
- 手机分辨率Android教程(十二)-- 使用DisplayMetrics获取手机分辨率
- Android中内容提供者ContentProvider的理解与基本使用
- android 获取手机中所有的传感器Sensor类使用方法
- IOS开发 手机联系人获取与使用ABAddressBookRef
- Android 获取手机内存,cpu使用信息
- android基础之内容提供者使用
- 使用系统内置的ContentProvider获取非SIM卡的手机联系人
- Android开发13——内容提供者ContentProvider的基本使用 推荐