联系人列表中是否有添加/编辑/删除事件?添加/编辑/删除事件android中的联系人
2
A
回答
1
欢迎您注册一个ContentObserver
从ContactsContract
ContentProvider
适当Uri
摸透更改该Uri
。
+0
我可以知道哪些联系人是添加/编辑/删除吗? – Deqing
+0
@CommonsWare - 任何相同的例子? –
+0
@AtolOHolic:我没有,我也没有去找任何东西。 – CommonsWare
0
//initially all your contact is stored in database then use this service and regiter this service in manifest
public class ContactSync_Service extends IntentService {
public ContactSync_Service() {
super("intent service");
}
@Override
protected void onHandleIntent(Intent intent) {
MyContentObserver contentObserver = new MyContentObserver();
this.getApplicationContext()
.getContentResolver()
.registerContentObserver(ContactsContract.Contacts.CONTENT_URI,
true, contentObserver);
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
}
class MyContentObserver extends ContentObserver {
public MyContentObserver() {
super(null);
}
//whenever a contact is add,modified,delete this method will get called
@Override
public void onChange(boolean selfChange) {
Log.e("changes", "changes");
syncDatabase();
super.onChange(selfChange);
}
}
//comparing database contact list with phone's contact list if there is contact is added or modified
@TargetApi(18)
@SuppressWarnings("unused")
public void syncDatabase() {
ContactDatabase db = new ContactDatabase(this);
//get all the data from database include contact and name
//contact bean is a class containing setter and getter of getName() and getContact()
ArrayList<ContactBean> arrayListDataase = db.fetch();
int size = arrayListDataase.size();
Log.e("size of arraylist", size + "");
/*
* ArrayList<String> arrayListContact=new ArrayList<String>();
*
*
* for(int i=0;i<arrayListDataase.size();i++) {
* arrayListContact.add(arrayListDataase.get(i).getContact()); }
*/
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null,
null, null);
int i = 0;
if (phones.moveToFirst()) {
do {
boolean flag = false;
String phoneNumber = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
// Log.e("number", phoneNumber);
for (i = 0; i < size; i++)
{
//comparing database contact number with phone's contact list contact number
if (arrayListDataase.get(i).getContact().equalsIgnoreCase(phoneNumber))
{
flag = true;
String nameFromContactList = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String nameFromDatabase=arrayListDataase.get(i).getName();
//check if name is changed in contact list
if(!nameFromContactList.equalsIgnoreCase(nameFromDatabase))
{
db.upDateNameWhenChangeInContactListOfPhone(nameFromContactList, phoneNumber);
}
break;
}
}
if (!flag) {
String image_uri="";
Log.e("contact changed", phoneNumber);
String name = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String email = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
String time_stamp = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_LAST_UPDATED_TIMESTAMP));
image_uri = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_URI));
if((image_uri==null) || image_uri.matches("") )
{
image_uri="";
}
db.insert(name, phoneNumber, email, image_uri);
//break;
}
} while (phones.moveToNext());
phones.close();
}
}}
相关问题
- 1. 将联系人的事件添加到Android的联系人表
- 2. android编辑联系人
- 3. 在android中添加联系人编程
- 4. Android删除模拟联系人编号
- 5. 如何从应用程序添加/编辑/删除iPhone联系人中的联系人组?
- 6. Android,删除联系人
- 7. 在android中检测添加,删除联系人
- 8. 从Android联系人中删除联系人
- 9. android编程式编辑联系人
- 10. 在联系人上添加/编辑/更改广播意图 - android
- 11. iOS通讯簿 - 如何知道哪些联系人已添加/编辑/删除?
- 12. Android添加联系人
- 13. 编辑股票android的联系人apk
- 14. 在android中删除特定联系人
- 15. 删除Android联系人的单个联系人
- 16. 在android如何知道该联系人被删除/更新/添加和哪个联系人已新添加
- 17. Android:以编程方式将生日事件添加到Android联系人
- 18. Xamarin Android编辑联系人意图
- 19. 添加的联系人不在联系人显示在Android的
- 20. 出现在联系人中的联系人编辑视图UI
- 21. KnockoutJS添加,编辑,删除
- 22. 删除,添加,编辑stringList
- 23. 无法从管理中添加或编辑Joomla联系人
- 24. 在android中添加联系人照片
- 25. 如何以编程方式在android中删除联系人组?
- 26. Android联系人:更新,删除,插入
- 27. Android:编辑类似于编辑联系人视图的视图
- 28. 如何添加编辑/删除/更新按钮,事件的GridView
- 29. 使用Android联系人应用编辑由自定义ContentProvider添加的原始联系人
- 30. Android:添加exsting联系人作为收藏联系人?
我不认为这可以“尝试”。 – Swapnil
Duplicate:http://stackoverflow.com/questions/1401280/how-to-listen-for-changes-in-contact-database(回答) – Totoo