Turkcell | Geleceği Yazanlar

Soru & Cevap

rehber güncelleme

27.08.2014 - 11:56

merhaba androidde yaptığım bir uygulamayla telefon rehberi güncellemek istiyorum. örnek kod paylaşabilir misiniz?

5266 Görüntülenme

3 Cevap

Mushfig
27.08.2014 - 15:41

bilgileriniz için teşekkür ederim. güncelleme işlemini başardım. sadece Contact Title güncellemesini aşağıdaki kodla yapıyorum. değişiklikler alınmıyor. sorun ne olabilir acaba? şimdiden teşekkürler

[code]builder=ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
        builder.withSelection(ContactsContract.Data.CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + "=?", new String[]{String.valueOf(id), ContactsContract.CommonDataKinds.Organization.TITLE});
        //builder.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE);
        builder.withValue(ContactsContract.CommonDataKinds.Organization.TITLE, PContacts.getTitle());
        ops.add(builder.build());[/code]

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Ahmet Burak Demirkoparan
27.08.2014 - 13:12

Telefon rehberinin birden fazla tablosu var ilişkisel tablolar ile contact_id alanlarını ortak tutarak haberleşiyor bu tablolar.Internette aratırken sürekli farklı farklı tablolara ait örnekler görebilirsin kafan karışmasın o yüzden ben bi ara içinden çıkamamıştım sonra mantığını anladım.Anıl'ın verdiği kaynakları inceleyebilirsin.

Örnek teşkil etmesi açısından rehberde kullanıcı arama methodu yapmıştım onu paylaşayım tablo ilişkileri vs nasıl oluyor görürsün.Bildiğin SQLite aslında

[code]

public ArrayList<ContactUser> searchOnContactList(Context context,String name) {
        ArrayList<ContactUser> contactUsers = new ArrayList<ContactUser>();
        ContentResolver cr = context.getContentResolver();
        String selection = ContactsContract.Contacts.DISPLAY_NAME + " like'"
                + name + "%'";
        Cursor masterCursor = cr.query(ContactsContract.Contacts.CONTENT_URI,
                null, selection, null, null);
        if (masterCursor.getCount() > 0) {
            while (masterCursor.moveToNext()) {
                ContactUser contactUser;
                String contactId = masterCursor.getString(masterCursor
                        .getColumnIndex(ContactsContract.Contacts._ID));
                String contactName = masterCursor
                        .getString(masterCursor
                                .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                String contactPhone = null, accountType = null;
                if (Integer
                        .parseInt(masterCursor.getString(masterCursor
                                .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                    Cursor phoneCursor = cr.query(
                            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                            null,
                            ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                                    + " = ?", new String[] { contactId }, null);
                    while (phoneCursor.moveToNext()) {
                        contactPhone = phoneCursor
                                .getString(
                                        phoneCursor
                                                .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))
                                .replaceAll("-", "");
                    }
                    phoneCursor.close();
                    Cursor accountTypeCursor = cr.query(
                            ContactsContract.RawContacts.CONTENT_URI, null,
                            ContactsContract.RawContacts.CONTACT_ID + " = ?",
                            new String[] { contactId }, null);
                    while (accountTypeCursor.moveToNext()) {
                        accountType = accountTypeCursor
                                .getString(accountTypeCursor
                                        .getColumnIndex(ContactsContract.RawContacts.ACCOUNT_TYPE));
                    }
                    accountTypeCursor.close();
                    if (accountType.equals("com.android.contacts.sim")
                            || accountType.equals("com.google")) {
                        contactUser = new ContactUser(contactId, contactName,
                                contactPhone, accountType);
                        contactUsers.add(contactUser);
                    }
                }
            }
        }
        return contactUsers;
    }

[/code]

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.