according android documentation possible read details user-selected contact without read_contacts permission. should possible using contacts uri, resulting "onactivityresult"-call. querying uri content resolver gives me access basic contact information though, described in contactscontract.contacts. i'm trying using (fairly standard) contact-picker code:
static final int request_select_contact = 1; public void selectcontact() { // start activity user pick contact intent intent = new intent(intent.action_pick); intent.settype(contactscontract.contacts.content_type); if (intent.resolveactivity(getpackagemanager()) != null) { startactivityforresult(intent, request_select_contact); } } protected void onactivityresult(int requestcode, int resultcode, intent data) { if(requestcode == request_select_contact && resultcode == result_ok) { // uri , query content provider contact data contacturi = data.getdata(); cursor cursor = getcontentresolver().query(contacturi, null, null, null, null); // if cursor returned valid, retrieve contact's details if (cursor != null && cursor.movetofirst()) { int numberindex = cursor.getcolumnindex(phone.number); int typeindex = cursor.getcolumnindex(phone.type); int idindex = cursor.getcolumnindex(contactscontract.contacts._id); int nameindex =cursor.getcolumnindex(contactscontract.contacts.display_name); string number = cursor.getstring(numberindex); // not accessible way string type= cursor.getstring(typeindex); // not accessible way string id = cursor.getstring(idindex); // accessible way string name = cursor.getstring(nameindex); // accessible way } } } as example contact data should somehow accessible i'm using phone number , type. index of these results in -1 not present in cursor. yet somehow need them, i'm stuck on how that. appreciated!
Comments
Post a Comment