public int ParseContactMethods(ContextWrapper contextWrapper, Uri uriContactMethods) { int nRet = PhoneDef.ErrorMessage.DERR_SUCCEED; try { String selection = "\"person\" = "+ContactID; Cursor Cursor = contextWrapper.getContentResolver().query(uriContactMethods,null,selection,null,null); if (Cursor.moveToFirst()) { int nRow = Cursor.getCount();//get rows of phones database Log.d("ContactMethodsCount", String.valueOf(nRow)); do { int nColumnKind = Cursor.getColumnIndex("kind"); String strKind = Cursor.getString(nColumnKind); if (strKind != null) Log.d("Kind", strKind); int nColumnType = Cursor.getColumnIndex("type"); String strType = Cursor.getString(nColumnType); if (strType != null) Log.d("Type", strType); int nColumnData = Cursor.getColumnIndex("data"); String strData = Cursor.getString(nColumnData); if (strData != null) Log.d("data", strData); int nColumnAuxData = Cursor.getColumnIndex("aux_data"); String strAuxData = Cursor.getString(nColumnAuxData); if (strAuxData != null) Log.d("aux_data", strAuxData); if( strKind != null && strType != null && strData != null ) { FieldsContact contactField = new FieldsContact(); if( strKind.equals(String.valueOf(1)))//1 means Email { if( strType.equals(String.valueOf(0)) )//0Contacts.ContactMethodsColumns.TYPE_CUSTOM {}//暂时不支持 else if( strType.equals(String.valueOf(1)) )//1Contacts.ContactMethodsColumns.TYPE_HOME
contactField.setTid(PhoneDef.ContactTID.TID_EMAIL1); else if( strType.equals(String.valueOf(2)) )//2Contacts.PhonesColumns.TYPE_WORK contactField.setTid(PhoneDef.ContactTID.TID_EMAIL2); else if( strType.equals(String.valueOf(3)) )//3Contacts.PhonesColumns.TYPE_OTHER contactField.setTid(PhoneDef.ContactTID.TID_EMAIL3); else contactField.setTid(PhoneDef.ContactTID.TID_EMAIL1);//default contactField.setCharSet(1); contactField.setValue(strData.getBytes("UTF-8")); arrayField.add(contactField); } else if( strKind.equals(String.valueOf(2)))//2 means postal address { if( strType.equals(String.valueOf(0)) )//0Contacts.ContactMethodsColumns.TYPE_CUSTOM {}//暂时不支持 else if( strType.equals(String.valueOf(1)) )//1Contacts.ContactMethodsColumns.TYPE_HOME contactField.setTid(PhoneDef.ContactTID.TID_HOMEADDRESS); else if( strType.equals(String.valueOf(2)) )//2Contacts.PhonesColumns.TYPE_WORK contactField.setTid(PhoneDef.ContactTID.TID_BUSINESSADDRESS); else if( strType.equals(String.valueOf(3)) )//3Contacts.PhonesColumns.TYPE_OTHER contactField.setTid(PhoneDef.ContactTID.TID_OTHERADDRESS); else contactField.setTid(PhoneDef.ContactTID.TID_HOMEADDRESS);//default contactField.setCharSet(1); contactField.setValue(strData.getBytes("UTF-8")); arrayField.add(contactField); } else if( strKind.equals(String.valueOf(3)) )//3 means IM { if( strAuxData.equals("pre:0") )//AIM contactField.setTid(PhoneDef.ContactTID.TID_AIM); else if( strAuxData.equals("pre:1") )//windows live contactField.setTid(PhoneDef.ContactTID.TID_WINDOWSLIVE); else if( strAuxData.equals("pre:2") )//yahoo contactField.setTid(PhoneDef.ContactTID.TID_YAHOO); else if( strAuxData.equals("pre:3") )//skype contactField.setTid(PhoneDef.ContactTID.TID_SKYPE); else if( strAuxData.equals("pre:4") )//QQ contactField.setTid(PhoneDef.ContactTID.TID_QQ); else if( strAuxData.equals("pre:5") )//google talk contactField.setTid(PhoneDef.ContactTID.TID_GOOGLETALK); else if( strAuxData.equals("pre:6") )//ICQ contactField.setTid(PhoneDef.ContactTID.TID_ICQ); else if( strAuxData.equals("pre:7") )//Jabber contactField.setTid(PhoneDef.ContactTID.TID_JABBER); else contactField.setTid(PhoneDef.ContactTID.TID_AIM);//default contactField.setCharSet(1); contactField.setValue(strData.getBytes("UTF-8")); arrayField.add(contactField); } else { Log.i("Error", "ContactMethods's Kind is wrong"); } } } while (Cursor.moveToNext()); } nRet = PhoneDef.ErrorMessage.DERR_SUCCEED; Cursor.close(); } catch (Exception e) { Log.i("ParseContactMethods Exception", e.toString()); e.printStackTrace(); nRet = PhoneDef.ErrorMessage.DERR_UNKNOWN; } return nRet; } 2008/12/29 roland <roland...@gmail.com> > > The value of the Contacts.ContactMethods.KIND are int type, not string > type. Try String selection = Contacts.ContactMethods.KIND > +" = 1"; > > On 21 déc, 03:50, jphdsn <jph...@gmail.com> wrote: > > hi, I code an app and want to retrieve email from Contacts app of > > android. If somebody knows how to retrieve the mails of a contact... > > it will be cool or if someone could tell me why the code below doesn't > > work and how it could be work... > > > > String selection = Contacts.ContactMethods.KIND > > +"="+Contacts.ContactMethods.CONTENT_EMAIL_TYPE; > > > > Cursor groupCursor1 = managedQuery( > > Contacts.ContactMethods.CONTENT_URI, null,selection,null, null); > > > > thanks a lot > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---