Android ContentProvider查看/读取手机联系人实例
程序员文章站
2023-12-18 21:37:22
看到某些app里面有读取联系人的功能,然后自己尝试了一下。发现这个挺简单的。然后自己就做了一个demo给大家,希望借这个demo可以让大家学习一下怎么实现读取手机联系人。...
看到某些app里面有读取联系人的功能,然后自己尝试了一下。发现这个挺简单的。然后自己就做了一个demo给大家,希望借这个demo可以让大家学习一下怎么实现读取手机联系人。
这里我用了两种方法去读取:第一张图片是跳转到系统自带的联系人界面,第二种就是直接去读取让后绑上来显示在主页面。话不多说直接上代码。
记得在androidmanifest.xml 记得加入这两句,不然就读取不到联系人。
<uses-permission android:name="android.permission.read_contacts" /> <uses-permission android:name="android.permission.write_contacts" />
package com.example.android_contentersolver; import android.app.activity; import android.app.alertdialog; import android.content.dialoginterface; import android.content.intent; import android.database.cursor; import android.net.uri; import android.os.bundle; import android.provider.contacts; import android.provider.contactscontract; import android.telephony.phonestatelistener; import android.telephony.telephonymanager; import android.view.view; import android.view.view.onclicklistener; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.checkbox; import android.widget.listview; import android.widget.textview; public class mainactivity extends activity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); findviewbyid(r.id.main_btn).setonclicklistener(new onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub //查询联系人号码 final cursor cursor = getcontentresolver() .query(contactscontract.commondatakinds .phone.content_uri, null, null, null, null); baseadapter adapter = new baseadapter() { @override public int getcount() { return cursor.getcount(); } @override public object getitem(int position) { return position; } @override public long getitemid(int position) { return position; } @override public view getview(int position, view convertview, viewgroup parent) { cursor.movetoposition(position); // checkbox rb = new checkbox(mainactivity.this); textview text=new textview(mainactivity.this); // 获取联系人的电话号码,并去掉中间的中划线、空格 string number = cursor .getstring(cursor.getcolumnindex( contactscontract.commondatakinds .phone.number)) .replace("-", "") .replace(" ", ""); // rb.settext(number); string name = cursor .getstring(cursor.getcolumnindex( contactscontract.commondatakinds .phone.display_name)); text.settext("名字:"+name+" 电话号码:"+number); return text; } }; //加载listview listview listview=(listview) findviewbyid(r.id.mian_list); listview.setadapter(adapter); } }); //跳转系统的联系人界面 findviewbyid(r.id.main_btn_sys).setonclicklistener(new onclicklistener() { @override public void onclick(view v) { // todo auto-generated method stub intent intent=new intent(); intent.setaction(intent.action_pick); intent.settype("vnd.android.cursor.dir/phone"); startactivityforresult(intent, 0x100); } }); } @override protected void onactivityresult(int requestcode, int resultcode, intent data) { // todo auto-generated method stub super.onactivityresult(requestcode, resultcode, data); uri uri=data.getdata(); cursor cursor = getcontentresolver() .query(uri, null, null, null, null); while(cursor.movetonext()){ string name=cursor.getstring(cursor.getcolumnindexorthrow(contacts.phones.name)); string number=cursor.getstring(cursor.getcolumnindexorthrow(contacts.phones.number)); textview textview=(textview) findviewbyid(r.id.mian_lists); textview.settext("名字:"+name+" 电话号码:"+number); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Android ContentProvider查看/读取手机联系人实例
-
Android ContentProvider获取手机联系人实例
-
Android 获取手机联系人实例代码详解
-
Android编程实现读取手机联系人、拨号、发送短信及长按菜单操作方法实例小结
-
Android4.X读取SIM卡短信和联系人相关类实例分析
-
Android ContentProvider实现手机联系人读取和插入
-
Android编程实现读取手机联系人、拨号、发送短信及长按菜单操作方法实例小结
-
Android4.X读取SIM卡短信和联系人相关类实例分析
-
Android ContentProvider实现获取手机联系人功能
-
手机联系人偷偷读取contentprovider(9)