android获得手机联系人信息代码

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
public class SelectContactActivity extends Activity {
     private ListView lv;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.activity_select_contact);
         lv = (ListView) findViewById(R.id.lv_select_contact);
         final List<Map<String, String>> data = getContactInfos();
         lv.setAdapter( new SimpleAdapter( this , data, R.layout.list_contact_item,
                 new String[]{ "name" , "phone" }, new int []{R.id.tv_name,R.id.tv_phone}));
         
         lv.setOnItemClickListener( new OnItemClickListener() {
 
             @Override
             public void onItemClick(AdapterView<?> parent, View view,
                     int position, long id) {
                 String phone =  data.get(position).get( "phone" );
                 Intent intent = new Intent();
                 intent.putExtra( "phone" , phone);
                 setResult( 0 , intent);
                 finish();
             }
         });
     }
     
     /**
      * 获取系统的所有的联系人信息.
      *
      * @return
      */
     public List<Map<String, String>> getContactInfos() {
         List<Map<String, String>> data = new ArrayList<Map<String, String>>();
         ContentResolver resolver = getContentResolver();
         Uri uri = Uri.parse( "content://com.android.contacts/raw_contacts" );
         Uri datauri = Uri.parse( "content://com.android.contacts/data" );
         // 查询raw_contact表 取联系人id
         Cursor cursor = resolver.query(uri, new String[] { "contact_id" },
                 null , null , null );
         while (cursor.moveToNext()) {
             String id = cursor.getString( 0 );
             System.out.println( "联系人的id为:" + id);
             if (id != null ) {
                 Map<String, String> map = new HashMap<String, String>();
                 // 查询data表 把当前联系人的数据给取出来.
                 Cursor dataCursor = resolver.query(datauri, null ,
                         "raw_contact_id=?" , new String[] { id }, null );
                 while (dataCursor.moveToNext()) {
                     String data1 = dataCursor.getString(dataCursor
                             .getColumnIndex( "data1" ));
                     String mimetype = dataCursor.getString(dataCursor
                             .getColumnIndex( "mimetype" ));
                     if ( "vnd.android.cursor.item/phone_v2" .equals(mimetype)) {
                         System.out.println( "电话:" + data1);
                         map.put( "phone" , data1);
                     } else if ( "vnd.android.cursor.item/email_v2"
                             .equals(mimetype)) {
                         System.out.println( "邮件地址:" + data1);
                         map.put( "email" , data1);
                     } else if ( "vnd.android.cursor.item/name" .equals(mimetype)) {
                         System.out.println( "姓名:" + data1);
                         map.put( "name" , data1);
                     }
                 }
                 data.add(map);
                 dataCursor.close();
             }
         }
         cursor.close();
         return data;
     }
}
目录
相关文章
|
1月前
|
Android开发 数据安全/隐私保护 虚拟化
安卓手机远程连接登录Windows服务器教程
安卓手机远程连接登录Windows服务器教程
88 4
|
1月前
|
安全 搜索推荐 Android开发
Android vs. iOS:解锁智能手机操作系统的奥秘####
【10月更文挑战第21天】 在当今这个数字化时代,智能手机已成为我们生活中不可或缺的伙伴。本文旨在深入浅出地探讨两大主流操作系统——Android与iOS的核心差异、优势及未来趋势,帮助读者更好地理解这两个平台背后的技术哲学和用户体验设计。通过对比分析,揭示它们如何塑造了我们的数字生活方式,并展望未来可能的发展路径。无论您是技术爱好者还是普通用户,这篇文章都将带您走进一个充满创新与可能性的移动世界。 ####
78 3
|
2月前
|
Ubuntu Linux Android开发
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器
本文介绍了如何在Android设备上安装Termux和AnLinux,并通过这些工具运行Ubuntu系统和桌面环境。
170 2
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器
|
2月前
|
安全 Java 网络安全
Android远程连接和登录FTPS服务代码(commons.net库)
Android远程连接和登录FTPS服务代码(commons.net库)
34 1
|
2月前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异:从代码到用户体验
【10月更文挑战第5天】在移动应用开发的广阔天地中,安卓和iOS两大平台各占半壁江山。它们在技术架构、开发环境及用户体验上有着根本的不同。本文通过比较这两种平台的开发过程,揭示背后的设计理念和技术选择如何影响最终产品。我们将深入探讨各自平台的代码示例,理解开发者面临的挑战,以及这些差异如何塑造用户的日常体验。
|
2月前
|
Web App开发 Android开发
利用firefox调试安卓手机端web
该教程详细介绍如何通过Firefox浏览器实现手机与电脑的远程调试。手机端需安装最新版Firefox,并按指定步骤设置完成;电脑端则需安装15版及以上Firefox。设置完成后,通过工具栏中的“远程调试”选项,输入手机IP地址即可连接。连接确认后,即可使用电脑端Firefox调试器调试手机上的Web信息。注意,调试前手机需提前打开目标网页。
104 2
|
2月前
|
JavaScript 前端开发
电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码
电话号码正则表达式 代码 javascript+html,JS正则表达式判断11位手机号码
131 1
|
2月前
|
Java Unix Linux
Android Studio中Terminal运行./gradlew clean build提示错误信息
遇到 `./gradlew clean build`命令执行出错时,首先应检查错误信息的具体内容,这通常会指向问题的根源。从权限、环境配置、依赖下载、版本兼容性到项目配置本身,逐一排查并应用相应的解决措施。记住,保持耐心,逐步解决问题,往往复杂问题都是由简单原因引起的。
369 2
|
2月前
|
Android开发 iOS开发 UED
安卓与iOS的较量:谁才是智能手机市场的王者?
本文将深入探讨安卓和iOS两大智能手机操作系统之间的竞争关系,分析它们各自的优势和劣势。通过对比两者在市场份额、用户体验、应用生态等方面的表现,我们将揭示出谁才是真正的市场领导者。无论你是安卓粉丝还是iOS忠实用户,这篇文章都将为你提供一些有趣的观点和见解。
|
3月前
|
存储 Java Android开发
🔥Android开发大神揭秘:从菜鸟到高手,你的代码为何总是慢人一步?💻
在Android开发中,每位开发者都渴望应用响应迅速、体验流畅。然而,代码执行缓慢却是常见问题。本文将跟随一位大神的脚步,剖析三大典型案例:主线程阻塞导致卡顿、内存泄漏引发性能下降及不合理布局引起的渲染问题,并提供优化方案。通过学习这些技巧,你将能够显著提升应用性能,从新手蜕变为高手。
38 2