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?

483 Görüntülenme

3 Cevap

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

picture-8754-1384881265.jpg
sheykhov
27.08.2014 - 03: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]

picture-1372-1408467635.jpg
ahmtbrk
27.08.2014 - 01: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]