Я создаю приложение для Android, и в моем приложении есть модуль, занимающийся синхронизацией контактов, в котором я синхронизирую контакты с контактом пользователя.
Список со списком контактов на сервере для фильтрации пользователей, зарегистрированных в приложении., аналогично Whatsapp, telegram, Facebook.
Теперь моя главная проблема - как выполнить синхронизацию контактов, в настоящее время я использую адаптер синхронизации, в котором я получаю все контакты из списка контактов пользователя и отправляю их на сервер.выполнить синхронизацию , но этот метод медленный и использует много телефонных ресурсов ,
Так что я выбираю лучший метод, если вам известна какая-либо помощь, пожалуйста, обратитесь ко мне.
При этом я сталкиваюсь с обозревателем контента, который в некотором роде работает немного лучше. Он уведомляет меня, когда контакт добавляется или редактируется, но не может правильно уведомить об удалении контакта, использую
ContactsContract.Contacts.CONTACT_LAST_UPDATED_TIMESTAMP
,
Во-вторых, он только уведомляет, когда приложение запущено, а не когда оно убито, какВ фоновом режиме, а также, если это возможно, как я могу интегрировать его в адаптер синхронизации для периодической проверки или имеется адаптер синхронизации, предназначенный для выполнения этой синхронизации контактов.любая помощь в поиске подходящего средства для синхронизации контактов будет оценена
вот мой код
public class ContentObserver extends android.database.ContentObserver
{
private Context mContext;
private static final String TAG="Contenr_observer_tag";
public ContentObserver(Handler handler,Context context) {
super(handler);
this.mContext=context;
Log.d(TAG,"occures here");
}
@Override
public void onChange(boolean selfChange) {
this.onChange(selfChange);
}
@Override
public void onChange(boolean selfChange, Uri uri) {
Cursor cursor=mContext.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null,
null,ContactsContract.Contacts.CONTACT_LAST_UPDATED_TIMESTAMP+" DESC");
if (cursor.moveToNext()){
String id=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String name=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
Log.d(TAG,"contact id: "+id);
Log.d(TAG,"contact name "+name);
}
cursor.close();
}
}