안녕하세요~
기본어플 주소록에 접근해서 데이터를 읽어오는 부분을 테스트 하고있습니다
여러그룹중 첫번째 그룹의 멤버아이디만 리스트로 출력하려하는데 왜안되는지 모르겠습니다
소스가 길진않은데 시간되시면 한번봐주세요~
public class Contacts_Test_Activity extends ListActivity {
ArrayList<String> ar = new ArrayList<String>();
ContentResolver cr;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
cr = getContentResolver();
Cursor groupCursor = cr.query(Data.CONTENT_URI,
new String[] { ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID,
ContactsContract.CommonDataKinds.GroupMembership.CONTACT_ID},
Data.DATA1 + "=" + get_groupId() + "AND" + Data.MIMETYPE + "='" +
ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE + "'",
null, null);
if(groupCursor.getColumnCount() > 0){
int contact_id_column = groupCursor.getColumnIndex(ContactsContract.CommonDataKinds.GroupMembership.CONTACT_ID);
while(groupCursor.moveToNext()){
String summary_id = groupCursor.getString(contact_id_column);
ar.add(summary_id);
}
}
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, ar)); }
public String get_groupId(){
String groupId = null;
Cursor c2 = cr.query(ContactsContract.Groups.CONTENT_URI, null, null, null, null);
if(c2.getColumnCount()>0){
int group_title_column2 = c2.getColumnIndex(ContactsContract.Groups._ID);
c2.moveToNext();
groupId = c2.getString(group_title_column2);
}
return groupId;
}
}
실행을 하면
01-19 12:03:39.558: ERROR/AndroidRuntime(5497): Caused by: android.database.sqlite.SQLiteException: unrecognized token: "1ANDmimetype": , while compiling: SELECT data1, contact_id FROM view_data_restricted data WHERE (1) AND (data1=1ANDmimetype='vnd.android.cursor.item/group_membership')
이런 에러가 찍히는데
1ANDmimetype 에서 1이 그룹아이디인데..
그룹아이디를 구하는방식이 잘못된건가요?
제가 그룹아이디를 로그로 찍어본결과 1,2,3,4 이런식이던데
어디가 잘못된건지 영 감이안와서 조언이나 팁좀 부탁드립니다



