rehber güncelleme
27.08.2014 - 11:56
merhaba androidde yaptığım bir uygulamayla telefon rehberi güncellemek istiyorum. örnek kod paylaşabilir misiniz?
523
Görüntülenme
0 Beğeni
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]
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]
Merhaba,
Aşağıdaki linkleri inceleyebilirsiniz;
http://developer.android.com/training/contacts-provider/modify-data.html
http://www.androidhub4you.com/2013/06/get-phone-contacts-details-in-android_6.html
http://samir-mangroliya.blogspot.com.tr/p/android-read-contact-and-display-in.html
İyi çalışmalar.