`
zengyan2012
  • 浏览: 414976 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android ContentResolver 多表联合查询

阅读更多

 

			String [] projection= new String[]{
			Phones._ID,
			Phones.TYPE,
			Phones.NUMBER,
			"(SELECT NAME FROM PEOPLE AS people WHERE PEOPLE._id =PERSON) AS peopleName",
//			new StringBuilder().append("(SELECT NAME FROM PEOPLE AS people WHERE PEOPLE._id =").append(Phones.PERSON_ID)
//			.append(") AS peopleName").toString(),
			"(SELECT DATA FROM PHOTOS AS PHOTOS WHERE PHOTOS.PERSON =PERSON) AS peopleLogo",
//			new StringBuilder().append("(SELECT DATA FROM PHOTOS AS PHOTOS WHERE PHOTOS.PERSON =").append(Phones.PERSON_ID)
//			.append(") AS peopleLogo").toString()
			
		}; 	

		String selection = "0==0) GROUP BY (PERSON";
		Cursor cursor = context.getContentResolver().query(Phones.CONTENT_URI, projection, selection, null, null);
		while(cursor.moveToNext()){
			System.out.println(cursor.getString(cursor.getColumnIndex(Phones.NUMBER)));
			System.out.println(cursor.getString(cursor.getColumnIndex("peopleName")));
		}
分享到:
评论
4 楼 zengyan2012 2011-12-21  
2025hawk 写道
我查了源码,我用的sdk是2.2.2.2开始限制在contacts的各种表操作中添加as

  恩..那以后的版本就不能用了.呵呵.
3 楼 2025hawk 2011-12-20  
我查了源码,我用的sdk是2.2.2.2开始限制在contacts的各种表操作中添加as
2 楼 zengyan2012 2011-12-13  
2025hawk 写道
确定可以?12-12 08:24:37.701: ERROR/DatabaseUtils(161): java.lang.IllegalArgumentException: Invalid column  (sort_key) AS xsort

我随便写个都暴错

  我确定能用.  因为这是我项目一面写出来的.  这是adk2.1 以下查询联系人的.
1 楼 2025hawk 2011-12-12  
确定可以?12-12 08:24:37.701: ERROR/DatabaseUtils(161): java.lang.IllegalArgumentException: Invalid column  (sort_key) AS xsort

我随便写个都暴错

相关推荐

    安卓ContentResolver操作通讯录demo

    在安卓开发中,ContentResolver是Android系统提供的一种接口,用于与内容提供者(Content Provider)进行交互,从而访问和管理...通过深入学习和实践,可以扩展到更复杂的场景,如搜索联系人、处理多个数据表的关联等。

    Android使用ContentResolver搜索手机通讯录的方法

    在Android开发中,ContentResolver是用于访问Android内容提供者(Content Provider)的一种接口,它允许应用程序与其他应用程序的数据进行交互,包括系统内置的数据如联系人、日历等。本篇文章将详细解析如何使用...

    AndroidCallLog获取通话记录

    使用ContentResolver的query()方法来查询CallLog表。例如: ```java ContentResolver contentResolver = getContentResolver(); Uri callLogUri = CallLog.Calls.CONTENT_URI; String[] projection = {CallLog....

    android添加联系人

    通常,我们使用`ContactsContract.Data`表来表示单个联系人条目,并通过`ContactsContract.RawContacts`表关联到具体的联系人。 4. **插入数据**:使用`ContentResolver`的`insert()`方法向联系人数据库添加新数据...

    Android 公司通讯录(含来电号码姓名查询和搜索功能).rar

    开发者需要注册广播接收器监听电话状态变化(例如`PhoneStateListener`),当有来电时,获取来电号码,然后通过ContentResolver查询与之关联的联系人信息,将姓名展示在来电界面上。 4. **用户界面设计**:良好的...

    Android 源码分析_Contacts

    联系人信息被存储在多个表中,如`RawContacts`、`Data`、`Contacts`等,每个表都有相应的SQLite操作方法。 三、联系人数据模型 1. RawContacts:代表单一的联系人源,如Google账户或SIM卡。 2. Data:存储具体的...

    android通讯录分组管理

    综上所述,"android通讯录分组管理"项目涵盖了Android开发中的多项核心技能,包括数据存储、用户界面设计、数据检索、权限管理、性能优化等多个方面,是学习和实践Android开发的优秀实例。通过这个项目,开发者可以...

    Android 获取通讯录程序源码.zip

    在这个过程中,`ContactsContract.Contacts.CONTENT_URI`是联系人表的URI,`null`表示没有特定的查询条件,`cursor.getColumnIndex`用于获取指定列的索引,最后遍历Cursor对象获取每个联系人的信息。 此外,源码...

    android 通讯录 (有索引)

    通常,我们使用`ContactsContract.Contacts`表来获取联系人基本信息,然后通过联系人的ID进一步查询其详细信息,如电话号码、电子邮件等。为了有索引,我们可以利用`ContactsContract.Contacts._ID`作为主键,通过`...

    安卓android ContactManager联系人管理器

    - **表结构**:Contacts Provider维护了多个表,如`Contacts`、`RawContacts`、`Data`等,它们之间通过唯一的ID关联,形成一个复杂的联系人数据模型。 - **数据存储**:联系人的姓名、电话号码、电子邮件地址等...

    android通讯录源码

    Android联系人数据模型包含多个表,如`RawContacts`、`Data`、`Groups`等。`RawContacts`表存储每个联系人的基本信息,`Data`表存储具体的数据项(如电话号码、电子邮件),`Groups`表则管理联系人分组。这些表之间...

    android 联系人模块

    联系人可以被组织进不同的分组,通过ContactsContract.Groups表和ContactsContract.ContactGroups表进行管理。分组的ID可以用来关联特定联系人。 7. **联系人照片**: 可以获取联系人的头像,ContactsContract....

    Pro Android学习:联系人API

    3. **查询联系人**:使用ContentResolver的query()方法可以查询联系人信息。例如,我们可以查询所有联系人,或者根据特定条件(如名字、电话号码等)筛选联系人。查询结果会返回一个Cursor对象,我们可以遍历Cursor...

    android通讯录

    - Android使用SQLite数据库存储通讯录数据,每个联系人可能包含多个条目,如姓名、电话号码、电子邮件地址、生日等。 - 数据表主要分为两个:`Contacts` 和 `RawContacts`。`Contacts` 表用于存储联系人的元数据,...

    Android 高仿基于android2.2(Froyo)的Contacts.rar

    Contacts应用中的每个联系人可能关联多个条目,如电话号码、电子邮件地址等,这些都需要在数据库中合理组织。 5. **ContentObserver**:为了实现实时数据更新,应用可能会使用ContentObserver监听Contacts Provider...

    Androidの联系人群组Group操作

    - `ContactsContract.RawContacts`:这个表包含每个联系人与群组的关联信息。每个联系人可能属于多个群组。 - `ContactsContract.Data`:此表用于存储联系人的具体数据,如姓名、电话号码等,同时也记录了联系人...

    android获取联系人生日信息

    要获取联系人生日信息,我们需要构建一个查询,指定要查询的表和列。`ContactsContract.CommonDataKinds.Event`类提供了与事件(如生日)相关的常量。`ContactsContract.Data.CONTACT_ID`用于关联联系人ID,`...

    Notepad android 记事本 源码

    《Android SDK 1.6与Eclipse环境下的Notepad记事本源码解析》 在Android应用开发领域,Notepad项目是初学者入门的经典案例,它是一个简单的记事本应用程序,帮助开发者理解基本的Android UI设计、数据存储以及事件...

    Android四大组件简述

    开发者需要实现ContentProvider类,并提供URI来标识数据,以便其他应用通过ContentResolver进行查询、插入、更新和删除操作。 在Android开发过程中,四大组件通常会协同工作。例如,一个Activity可能启动Service来...

    android 相册制作demo

    2. 使用MediaStore类:Android提供了MediaStore.Images.Media类来访问设备上的图片,可以通过ContentResolver查询所有图片的Uri。 3. 使用CursorLoader:对于大量数据,推荐使用CursorLoader,它能在后台线程中加载...

Global site tag (gtag.js) - Google Analytics