android - 仅在 Android 应用程序的电话簿中同步新插入的联系人

标签 android

是否可以在 Android 应用程序中仅同步电话簿中新插入的联系人?假设我第一次将我的电话簿与应用程序同步并保存这些联系人。同样,当我需要显示这些联系人时,只有新插入的联系人才会同步,而其他联系人只能从数据库中检索。

最佳答案

        public class ContactListenerService extends Service {
            MyContentObserver contentObserver = new MyContentObserver();
            @Nullable
            @Override
            public IBinder onBind(Intent intent) {
                return null;
            }

            @Override
            public void onCreate() {
                super.onCreate();

                getApplicationContext().getContentResolver().registerContentObserver(ContactsContract.Contacts.CONTENT_URI, true, contentObserver);
            }

            @Override
            public int onStartCommand(Intent intent, int flags, int startId) {
            boolean flag = PreferencesManager.getInstance(this).optBoolean("flag");
                if(flag==false){
                    Toast.makeText(this, flag+"  val", Toast.LENGTH_LONG).show();
                }else{
                    PreferencesManager.getInstance(getApplicationContext()).putBoolean("flag",false);
                    // your method to sync contact
                }
                return  Service.START_STICKY;
            } 
        private class MyContentObserver extends ContentObserver {

                boolean flag=false;

                public MyContentObserver() {
                    super(null);
                }

                @Override
                public void onChange(boolean selfChange) {
                    PreferencesManager.getInstance(getApplicationContext()).putBoolean("flag",true);
                    super.onChange(selfChange);
                }

                @Override
                public boolean deliverSelfNotifications() {
                    return super.deliverSelfNotifications();
                }
            }


        }
        public class ContactSyncScreen extends BaseFragment {
         @Override
        public void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    // Your other stuff 
            //Start the service form fragment
            Intent intent=new Intent(getActivity(),ContactListenerService.class);
            getActivity().startService(intent);
    }
  }

关于android - 仅在 Android 应用程序的电话簿中同步新插入的联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44693936/

相关文章:

java - 如何让我的android应用程序在启动时启动然后隐藏

android - 如何从 AccessibilityNodeInfo 中获取选定的文本

java - 难以从使用谷歌地图地点选择器 API 获得的位置传递数据并将其发送到 textView 以供用户查看位置

android - Android 上的消息应用程序 (mms)

Android - Phonegap 内部主动交互

android - ListView回收图片

java - Android QrCode 扫描,带预览,无 Intent

java - Gstreamer 还是 VLC?对于桌面和移动平台?

android - 无法将 HeaderView 添加到 ListFragment

android - 使用 libgdx 在 Nexus 设备上全屏显示