CODE:
String[] projection = new String[]{
People._ID,
People.NAME
};
Uri peopleUri = People.CONTENT_URI;
Log.d( TAG, "peopleUri: " + peopleUri );
Cursor peopleCursor = managedQuery( peopleUri, projection, null, null, People.DEFAULT_SORT_ORDER );
if( peopleCursor == null ){
Log.e( TAG, "peopleCursor is null");
return false;
}
if( peopleCursor.moveToFirst()){
boolean isAfterLastPeople = peopleCursor.isAfterLast();
while( !isAfterLastPeople ){
String name = peopleCursor.getString(peopleCursor.getColumnIndexOrThrow( People.NAME ));
Log.d( TAG, "name: " + name );
Long personId = peopleCursor.getLong( peopleCursor.getColumnIndexOrThrow(People._ID) );
Uri personUri = ContentUris.withAppendedId(peopleUri, personId );
Uri phoneUri= Uri.withAppendedPath( personUri, People.Phones.CONTENT_DIRECTORY );
Log.d( TAG, "phoneUri: " + phoneUri );
Cursor phoneCursor = managedQuery( phoneUri, null, null, null, People.Phones.DEFAULT_SORT_ORDER );
if( phoneCursor == null ){
Log.e( TAG, "phoneCursor is null");
return false;
}
if( phoneCursor.moveToFirst()){
boolean isAfterLastPhone = phoneCursor.isAfterLast();
while( !isAfterLastPhone ){
String number= phoneCursor.getString( phoneCursor.getColumnIndexOrThrow( PhonesColumns.NUMBER));
String type = phoneCursor.getString( phoneCursor.getColumnIndexOrThrow( PhonesColumns.TYPE ));
Log.d( TAG, "number:" + number );
Log.d( TAG, "type:" + type );
phoneCursor.moveToNext();
isAfterLastPhone = phoneCursor.isAfterLast();
}
}
peopleCursor.moveToNext();
isAfterLastPeople = peopleCursor.isAfterLast();
}
本文介绍了一种使用Android内容提供者(Content Provider)查询联系人及其电话号码的方法。通过获取People表中的联系人信息,并进一步获取其对应的电话号码详情。
730

被折叠的 条评论
为什么被折叠?



