Нужна помощь для доступа к системе встроенных контактов в Android - PullRequest
0 голосов
/ 15 июня 2011

Я новичок в Android. Я хочу использовать встроенную в систему систему управления контактами, которую предоставляет Android. Я много искал, но не мог точно понять, как это сделать.о том, как добавить контакты из кода (а не из GUI), как получить к ним доступ в моем приложении (просто чтобы показать все записи в текстовом представлении).Возможно ли это сделать без использования SQLite или файловых операций (означает просто чтение и запись в системную память) ???

Заранее спасибо ...

1 Ответ

1 голос
/ 15 июня 2011

Посмотрите на этот код!

btn_existing_contacts.setOnClickListener(new OnClickListener() {
        public void onClick(View v){
            Intent intent_contacts = new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
            /*contacts.setAction(android.content.Intent.ACTION_VIEW);
            contacts.setData(People.CONTENT_URI);*/
            startActivityForResult(intent_contacts, 0);
            //displayContacts();


        }
     });

после возвращения с экрана контактов,

@Override
protected void onActivityResult(int requestCode, int resultCode,Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
String name,mailid,id;
switch(requestCode)
{
case 0:
{
    if(resultCode == RESULT_OK )
    {
        Uri contactdata  = data.getData();

        Cursor cur = managedQuery(contactdata, null, null, null, null);


        if(cur.moveToFirst())
        {
            id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
            Cursor emailCur = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null,
                    ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",new String[]{id}, null); 
            emailCur.moveToFirst();
            String email = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));


            name = cur.getString(cur.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
            //mailid = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
            //mailid = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Email._ID));
            //Toast.makeText(context_contact, "Name:"+name+"\nmailid:"+email, Toast.LENGTH_SHORT).show();
            Intent intent_add_invitees = new Intent(<ClassContext>,<ur classname>.class);
            intent_add_invitees.putExtra("invitee_name", name);
            intent_add_invitees.putExtra("invitee_mailid", email);
            setResult(RESULT_OK, intent_add_invitees);
            finish();

        }
    }

}



}
}
...