android内容访问者+获取联系人信息
2017-02-22 12:33
344 查看
android 通过内容访问者获取所以联系人
下面是效果图 用listview展示比较丑,不过重点看功能:
![](https://img-blog.csdn.net/20170222121053793?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzc1MzA2MzM=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
获取联系人必须添加权限
Uri.parse(“content://com.android.contacts/raw_contacts”);获取联系人类,拿到联系人的ID
通过ID在拿联系人的具体信息
Uri.parse(“content://com.android.contacts/raw_contacts/”+id+”/data”);
因为联系人的姓名、电话号码、邮箱、、、多在同一列所以要判断mimetype 的类型。
vnd.android.cursor.item/name 用户名
vnd.android.cursor.item/phone_v2 电话号码
下面是效果图 用listview展示比较丑,不过重点看功能:
这个是通过点击button来获取
获取联系人必须添加权限
<uses-permission android:name="android.permission.READ_CONTACTS" />
Uri.parse(“content://com.android.contacts/raw_contacts”);获取联系人类,拿到联系人的ID
通过ID在拿联系人的具体信息
Uri.parse(“content://com.android.contacts/raw_contacts/”+id+”/data”);
因为联系人的姓名、电话号码、邮箱、、、多在同一列所以要判断mimetype 的类型。
vnd.android.cursor.item/name 用户名
vnd.android.cursor.item/phone_v2 电话号码
public class MainActivity extends AppCompatActivity { private ListView tv_main_testView; private ContentResolver cr; private List<Map<String,Object>> lm=new ArrayList<>();// @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取listView控件 tv_main_testView = (ListView) findViewById(R.id.tv_main_testView); //获取内容访问者 cr = getContentResolver(); } //获取联系人的方法 public void getUser(View view){ //用户表的uri Uri uri=Uri.parse("content://com.android.contacts/raw_contacts"); //用户数据 Cursor c=cr.query(uri,null,null,null,null); while(c.moveToNext()){ //用户ID int id=c.getInt(c.getColumnIndex("_id")); //用户名 String name=c.getString(c.getColumnIndex("display_name")); Log.i("test",id+" "+c.getString(c.getColumnIndex("display_name"))); //根据用户ID些查看详细信息 Uri uridata=Uri.parse("content://com.android.contacts/raw_contacts/"+id+"/data"); //用户信息信息数据 Cursor cs=cr.query(uridata,null,null,null,null); while(cs.moveToNext()){ //数据类型 String type=cs.getString(cs.getColumnIndex("mimetype")); Log.i("test","电话号码:"+cs.getString(cs.getColumnIndex("data1")) +" 类型="+cs.getString(cs.getColumnIndex("mimetype"))); //用户数据map集合 Map<String,Object> map=new HashMap<>(); if(type.equals("vnd.android.cursor.item/name")){ //当type是vnd.android.cursor.item/name时 添加用户名 map.put("namedata",cs.getString(cs.getColumnIndex("data1"))); }else if(type.equals("vnd.android.cursor.item/phone_v2")){ //当type是vnd.android.cursor.item/phone_v2时 添加手机号码 map.put("phonedata",cs.getString(cs.getColumnIndex("data1"))); } lm.add(map); } //设置适配器 SimpleAdapter simple=new SimpleAdapter(MainActivity.this,lm,R.layout.item_phone,new String[]{"namedata","phonedata"},new int[]{R.id.tv_item_phone_name,R.id.tv_item_phone_phone}); tv_main_testView.setAdapter(simple); } } }
相关文章推荐
- android获取单个通讯录联系人信息并分享内容(短信邀请)
- Android之内容提供者-- 获取联系人和短信信息
- Android初级教程之内容提供者获取联系人信息
- 无废话Android之内容观察者ContentObserver、获取和保存系统的联系人信息、网络图片查看器、网络html查看器、使用异步框架Android-Async-Http(4)
- android利用ContentResolver访问者获取手机联系人信息
- 利用ContentResolver内容访问者获取手机联系人信息
- Android初级教程之内容提供者获取联系人信息
- Android内容访问者访问联系人信息实例
- Android 内容访问者 和 跳转到通讯录页面获取信息
- android获取联系人信息
- Android软件开发之获取通讯录联系人信息(二十九)
- Android软件开发之获取通讯录联系人信息
- Android软件开发之获取通讯录联系人信息(转)
- android 获取手机联系人信息
- android 获取通讯录联系人信息
- android 获取联系人和短消息信息
- Android软件开发之获取通讯录联系人信息
- android:获取联系人信息(姓名和电话)
- Android软件开发之获取通讯录联系人信息(二十九)
- 获取android联系人信息