gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:59:02 25 4
gpt4 key购买 nike

我正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com