Android:使用 registerContentObserver() 在联系人更改时收到通知

标签 android

我正在使用 registerContentObserver() 在联系人更改时收到通知,但是当我注册内容时 uri:People.CONTENT_URI 并且当我在即使在更改联系人后,日志猫也会收到“错误”通知。

我还将 deliverSelfNotification 覆盖为 true。我做错了什么?

最佳答案

不确定你在问什么,你的问题有点含糊。

下面是我如何监听 SMS 内容提供者的变化,你可能会发现它很有用

String url = "content://sms/"; 
        Uri uri = Uri.parse(url); 
        getContentResolver().registerContentObserver(uri, true, new MyContentObserver(handler)); 

        /uriSms = Uri.parse("content://sms/inbox");
        Cursor c = getContentResolver().query(uriSms, null,null,null,null); 

        //Log.d("COUNT", "Inbox count : " + c.getCount());


}

class MyContentObserver extends ContentObserver { 

    public MyContentObserver(Handler handler) { 

        super(handler); 

    }

@Override public boolean deliverSelfNotifications() { 
    return false; 
    }

@Override public void onChange(boolean arg0) { 
    super.onChange(arg0);

     Log.v("SMS", "Notification on SMS observer"); 

    Message msg = new Message();
    msg.obj = "xxxxxxxxxx";

    handler.sendMessage(msg);

    Uri uriSMSURI = Uri.parse("content://sms/");
    Cursor cur = getContentResolver().query(uriSMSURI, null, null,
                 null, null);
    cur.moveToNext();
    String protocol = cur.getString(cur.getColumnIndex("protocol"));
    if(protocol == null){
           Log.d("SMS", "SMS SEND"); 
           int threadId = cur.getInt(cur.getColumnIndex("thread_id"));
           Log.d("SMS", "SMS SEND ID = " + threadId); 
           getContentResolver().delete(Uri.parse("content://sms/conversations/" + threadId), null, null);

    }
    else{
        Log.d("SMS", "SMS RECIEVE");  
         int threadIdIn = cur.getInt(cur.getColumnIndex("thread_id"));
         getContentResolver().delete(Uri.parse("content://sms/conversations/" + threadIdIn), null, null);
    }

}

关于Android:使用 registerContentObserver() 在联系人更改时收到通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2154328/

相关文章:

android - 如何将我的 Android 手机连接到 unity 以测试游戏?

Android 无法使用 LibGDX 打开文件

android - match_parent 兼容性

android - 在 Android 上的 OpenGL ES 2.0 中使用 VBO/IBO

Android 日期选择器和时间选择器问题

java - Picasso "Target must not be null"(使用 Firebase 数据库)

android - 如何在将 ArrayList 添加到 Android 中的 HashMap 后清除 ArrayList?

android - 按下按钮时将一个 XML 布局打开到另一个 XML 布局

android - 如何使 APK 符合 Google Play 64 位要求?

android - 将 MonoDroid 应用程序上传到 Android Market