Android获取手机通讯录、sim卡联系人及调用拨号界面方法

所属分类: 软件编程 / Android 阅读数: 694
收藏 0 赞 0 分享

android获取手机通讯录联系人信息

复制代码 代码如下:

private void getPhoneContacts() {   
    ContentResolver resolver = this.getContentResolver();   
       
    // 获取手机联系人   
   Cursor phoneCursor = resolver.query(Phone.CONTENT_URI, 
                new String[] { Phone.CONTACT_ID, Phone.DISPLAY_NAME, 
                        Phone.NUMBER }, 
                Phone.DISPLAY_NAME + "=?" + " AND " + Phone.TYPE + "='" 
                        + Phone.TYPE_MOBILE + "'", new String[] { name }, null); 
    if (phoneCursor != null) { 
        while (phoneCursor.moveToNext()) { 
            String number = phoneCursor.getString(2); 
                    // 当手机号码为空的或者为空字段 跳过当前循环   
                    if (TextUtils.isEmpty(phoneNumber))   
                        continue; 
            // 得到联系人名称               
            String username = phoneCursor.getString(1); 
            mContactsName.add(contactName);   
                mContactsNumber.add(phoneNumber); 
 
        } 
        phoneCursor.close(); 
    }  

获得手机sim卡联系人信息

sim卡和手机本人 获取的方式类似 只是url有点不一样 ,须要注意的一点是 sim卡  是没有联系人头像的。

复制代码 代码如下:

private void getSIMContacts() {   
    ContentResolver resolver = mContext.getContentResolver();   
    // 获取Sims卡联系人   
    Uri uri = Uri.parse("content://icc/adn");   
    Cursor phoneCursor = resolver.query(uri, 
                new String[] { Phone.CONTACT_ID, Phone.DISPLAY_NAME, 
                        Phone.NUMBER }, 
                Phone.DISPLAY_NAME + "=?" + " AND " + Phone.TYPE + "='" 
                        + Phone.TYPE_MOBILE + "'", new String[] { name }, null); 
    if (phoneCursor != null) { 
        while (phoneCursor.moveToNext()) { 
            String number = phoneCursor.getString(2); 
                    // 当手机号码为空的或者为空字段 跳过当前循环   
                    if (TextUtils.isEmpty(phoneNumber))   
                        continue; 
            // 得到联系人名称               
            String username = phoneCursor.getString(1); 
            mContactsName.add(contactName);   
                mContactsNumber.add(phoneNumber); 
 
        } 
        phoneCursor.close(); 
    } 


调用系统拨打电话的界面 ,代码如下。
tel:电话号码
复制代码 代码如下:

//调用系统方法拨打电话   
    Intent dialIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + mContactsNumber.get(position)));   
    startActivity(dialIntent);  

最后,千万别忘记在AndroidManifest.xml文件中添加权限,否则运行程序是报错!

复制代码 代码如下:

<!-- 读取联系人权限 -->    
<uses-permission android:name="android.permission.READ_CONTACTS"/>   
<!-- 拨打电话权限 -->   
<uses-permission android:name="android.permission.CALL_PHONE"/> 

更多精彩内容其他人还在看

Android网络编程之获取网络上的Json数据实例

这篇文章主要介绍了Android网络编程之获取网络上的Json数据实例,本文用完整的代码实例讲解了在Android中读取网络中Json数据的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中的windowSoftInputMode属性详解

这篇文章主要介绍了Android中的windowSoftInputMode属性详解,本文对windowSoftInputMode的9个属性做了详细总结,需要的朋友可以参考下
收藏 0 赞 0 分享

Android网络编程之UDP通信模型实例

这篇文章主要介绍了Android网络编程之UDP通信模型实例,本文给出了服务端代码和客户端代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中使用ListView实现漂亮的表格效果

这篇文章主要介绍了Android中使用ListView实现漂亮的表格效果,本文用详细的代码实例创建了一个股票行情表格,需要的朋友可以参考下
收藏 0 赞 0 分享

Android中刷新界面的二种方法

这篇文章主要介绍了Android中刷新界面的二种方法,本文使用Handler、postInvalidate两种方法实现界面刷新,需要的朋友可以参考下
收藏 0 赞 0 分享

Android SDK三种更新失败及其解决方法

这篇文章主要介绍了Android SDK三种更新失败及其解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(一)

Android3.0(API level 11)开始,Android设备不再需要专门的菜单键。随着这种变化,Android app应该取消对传统6项菜单的依赖。取而代之的是提供anction bar来提供基本的用户功能
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(二)

这次将继续上一篇文章没有讲完的Menu的学习,上下文菜单(Context menu)和弹出菜单(Popup menu)
收藏 0 赞 0 分享

Android学习笔记——Menu介绍(三)

今天继续昨天没有讲完的Menu的学习,主要是Popup Menu的学习,需要的朋友可以参考下
收藏 0 赞 0 分享

Android显示网络图片实例

这篇文章主要介绍了Android显示网络图片的方法,以实例形式展示了Android程序显示网络图片的方法,非常具有实用价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多