Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 呼叫日志和sms的内容提供商不工作_Java_Android_Android Contentprovider - Fatal编程技术网

Java 呼叫日志和sms的内容提供商不工作

Java 呼叫日志和sms的内容提供商不工作,java,android,android-contentprovider,Java,Android,Android Contentprovider,在我的应用程序中,我需要获得每一个callincoming/outgoing/miscall以及消息的信息。因此,在安装应用程序时,我使用了content observer和registered observer。但不知道为什么在注册后,观察者只运行一次并向我提供数据,然后观察者不运行,可能是它被取消注册了。我的问题是,如何在安装了我的应用程序的情况下永久注册observer?observer被注销的原因是什么 这是我的注册代码 public static void registerObserv

在我的应用程序中,我需要获得每一个callincoming/outgoing/miscall以及消息的信息。因此,在安装应用程序时,我使用了content observer和registered observer。但不知道为什么在注册后,观察者只运行一次并向我提供数据,然后观察者不运行,可能是它被取消注册了。我的问题是,如何在安装了我的应用程序的情况下永久注册observer?observer被注销的原因是什么

这是我的注册代码

public static void registerObserver(Context ctx)
    {   

        resolver = ctx.getContentResolver();
        handler=new SMSHandler();
        call_observer=new CallObserver(handler, ctx);
        resolver.registerContentObserver(CallLog.Calls.CONTENT_URI,true,call_observer);

    }
以下是通话记录观察者:

 public class CallObserver extends ContentObserver {
        private Context context;
        String contact_id = "", email = "", address = "", name = "";
        public static Date date;
        public static SimpleDateFormat sdf;
        public CallObserver(Handler handler, Context context) {
            super(handler);
            this.context = context;
        }
    @Override
            public void onChange(boolean selfChange) {
                // TODO Auto-generated method stub

            Thread thread = new Thread() {
                public void run() {
                    Do_Some_Thing();
                }
            };
            thread.start();
            super.onChange(selfChange);
        }
        private void Do_Some_Thing() {
                  Log.e("observer running","observer running");
            }
        }
    }

您可以使用SharedPreference将其注册。@KanwaljitSingh谢谢您,先生,但您如何解释呢?我对这种情况不太了解。但是检查这个链接肯定会帮助你。