private String testOne() throws Exception {
final Cursor people = getContentResolver().query(Contacts.CONTENT_URI, null, null, null, null);
StringBuilder sb = new StringBuilder();
while(people.moveToNext()) {
long id = people.getLong(people.getColumnIndex(Contacts._ID));
String name = people.getString(people.getColumnIndex(PhoneLookup.DISPLAY_NAME));
if(id==1) {
sb.append("---id is "+id+",name is "+name+"\n");
//String IsPhone = people.getString(people.getColumnIndex(Contacts.HAS_PHONE_NUMBER));
//if( (Integer.parseInt(IsPhone) > 0) ){}
Cursor c = null;
// Cursor c = getContentResolver().query(CommonDataKinds.Phone.CONTENT_URI,
// null,CommonDataKinds.Phone.CONTACT_ID+"="+id,null,null);
//while(c.moveToNext()){
// long i = c.getLong(c.getColumnIndex(Contacts._ID));
// String num=c.getString(c.getColumnIndex(CommonDataKinds.Phone.NUMBER));
// sb.append("phone=id:"+i+", n:"+num+"\n");
//}
//c.close();
c=getContentResolver().query(Data.CONTENT_URI, null, Data.CONTACT_ID+"="+id, null, null);
while(c.moveToNext()){
long j=c.getLong(c.getColumnIndex(Contacts._ID));
String typ=c.getString(c.getColumnIndex(Data.MIMETYPE));
String str="";
if(typ.equals(CommonDataKinds.Im.CONTENT_ITEM_TYPE)){
str=c.getString(c.getColumnIndex(CommonDataKinds.Im.PROTOCOL))+",";
str+=c.getString(c.getColumnIndex(CommonDataKinds.Im.DATA));
}
else if(typ.equals(CommonDataKinds.Email.CONTENT_ITEM_TYPE)){
str=c.getString(c.getColumnIndex(CommonDataKinds.Email.TYPE))+",";
str+=c.getString(c.getColumnIndex(CommonDataKinds.Email.DATA));
}
else if(typ.equals(CommonDataKinds.Note.CONTENT_ITEM_TYPE)){
str=c.getString(c.getColumnIndex(CommonDataKinds.Email.DATA));
}
else if(typ.equals(CommonDataKinds.Phone.CONTENT_ITEM_TYPE)){
str=c.getString(c.getColumnIndex(CommonDataKinds.Phone.TYPE))+",";
str+=c.getString(c.getColumnIndex(CommonDataKinds.Phone.DATA));
}
else if(typ.equals(CommonDataKinds.Photo.CONTENT_ITEM_TYPE)){
byte[] buf = c.getBlob(c.getColumnIndex(CommonDataKinds.Photo.PHOTO));
str="len is "+buf.length;
}
else if(typ.equals(CommonDataKinds.Nickname.CONTENT_ITEM_TYPE)){
str=c.getString(c.getColumnIndex(CommonDataKinds.Nickname.TYPE))+",";
str+=c.getString(c.getColumnIndex(CommonDataKinds.Nickname.DATA));
}
sb.append("data=id"+j+", t:"+typ+"\n, n:"+str+"\n");
}
c.close();
}
}
people.close();
return sb.toString();
}
分享到:
相关推荐
2. SQLite数据库:`ContactsContract`是Android提供的用于操作联系人数据的API,它定义了数据库表结构和常量。联系人信息被存储在多个表中,如`RawContacts`、`Data`、`Contacts`等,每个表都有相应的SQLite操作方法...
通过研究Google Contacts的源码,开发者可以学习到Google的编程规范、代码结构和模块化设计,这些都是遵循Android开发最佳实践的体现。 总之,分析和学习Google Contacts的源码不仅能帮助你深入了解Android的联系...
在源码中,我们可以看到如何使用SQLiteOpenHelper来创建和升级数据库,以及如何设计数据表结构。例如,`ContactsContract`类定义了数据的URI、列名和数据类型,便于其他应用通过标准的ContentResolver接口访问这些...
通过解析ContactsContract类,我们可以了解系统定义的Contacts内容URI和数据结构,这对于我们定制自己的数据提供者或者与Contacts交互至关重要。ContactsContract类中包含了各种常量和抽象类,如Data、RawContacts、...
### Android 2.2 Contacts 表结构解析 在Android系统中,联系人的管理与存储是一项重要的功能。Android 2.2版本中对于联系人的管理主要通过`ContactsContract`类来进行,该类定义了一系列用于访问联系人数据库的...
`security:http`、`security:authentication-manager`等元素定义了整个安全体系结构。 9. **基于注解的配置**:虽然本示例可能使用XML配置,但Spring Security也支持使用Java配置和注解,例如`@EnableWebSecurity`...
1. **数据存储结构** Android的Contacts应用基于SQLite数据库进行数据存储。它定义了一系列的数据表,如`contacts`、`raw_contacts`、`data`等,用于保存联系人的基本信息和各个数据项。`raw_contacts`表存储每个...
在"Contacts"应用中,我们需要创建一个数据库连接,定义数据表结构,并实现添加、查询、更新和删除联系人的功能。 此外,PyQt5还支持信号和槽机制,这是GUI编程中一种强大的通信方式。当一个动作(如点击按钮)发生...
为了适应Android Go的性能限制,源码可能会包含各种性能优化策略,如使用轻量级数据结构,减少内存分配,或者通过异步任务处理大数据操作。 7. **数据分页**: 对于大量联系人,应用可能使用数据分页技术来减少...
在处理联系人数据时,我们可以通过ContentProvider扩展SQLite数据库,创建相应的表结构,如Contacts表和Groups表。利用SQL语句进行增删改查操作,例如,使用INSERT INTO添加新的联系人,使用JOIN操作来关联联系人和...
**Laravel 开发 - contacts** Laravel 是一个优雅且强大的 PHP 框架,它为开发者提供了丰富的工具和功能,使构建 web 应用程序变得简单高效。在 "Laravel 开发 - contacts" 这个项目中,我们关注的是如何使用 ...
源码中包含了数据库的表结构设计和相关的SQL操作,如增删改查。开发者可以通过分析这部分代码,学习如何高效地使用SQLite数据库,以及如何设计合理的数据模型。 2. UI设计:Contacts应用的界面由多个Activity和...
在源码中,可以看到如何通过ContentProvider操作这些数据,以及如何定义数据表结构和查询语句。 2. **ContentProvider**:Android的ContentProvider是应用程序间数据共享的关键组件。在联系人应用中,...
《专网联系人contactsprovider设计文档》 专网联系人管理是一个重要的系统功能,其核心在于PrivateContactsProvider的设计,它负责管理和提供专网内的联系人数据,包括但不限于联系人信息、组信息、通话记录等。...
2. 数据结构与数据库设计: 在设计这样的系统时,我们需要考虑如何有效地存储和检索联系人信息。这通常涉及到关系数据库的设计,如MySQL、SQLite或PostgreSQL,其中“Contacts”可能是一个表,包含各种字段来存储...
二、AndroidContacts项目结构 AndroidContacts-master作为项目的主要目录,通常包含了项目的源代码、资源文件、构建脚本以及README文档等。源代码部分可能包括多个模块,如UI界面、数据访问层(DAL)和业务逻辑层...
1. **数据结构与模型**:contacts-pane可能定义了一种数据结构,用于存储和操作联系人信息,如姓名、电话号码、电子邮件地址等。这通常涉及到JavaScript对象或者类的设计,确保数据的组织和访问符合预期。 2. **...
立体定向脑电图(Stereotactic Electroencephalography, SEEG)是一种通过植入颅内的电极来监测大脑深层结构电活动的技术。与传统的头皮脑电图相比,SEEG能够提供更精确的空间定位信息,这对于识别癫痫发作起源区至...
QML是一种声明式的语言,用于构建用户界面,它的设计目标是简化UI的创建,提供更直观的代码结构。 首先,让我们从QML开始。QML允许开发者通过声明式的语法定义UI元素和它们之间的关系。在"Qt-Qml-Contacts-master...