我正在开发一个收到信息后发送一条短信进行回复的程序(自动回复),当我的手机启动群聊程序,我的程序并没有成功的发送消息,于是我采用了如下的代码解决这个问题,
android开发,视频群聊引发短信异常
。在信息发送后,我专门记录了SMS日志,但是现在 短信接收优先级高于群聊,发送的消息被写入到用户的短信记录收到的消息后,他应该展示如下日志:
Response Message
Received Message - this is what triggered the response
但是现在他展示的日志不对,如下
Received Message - triggers response
Response Message
我感觉我的程序被群聊的程序影响了,扰乱了我的程序,现在不知道该如何处理.
下面是我代码:
context.getContentResolver().registerContentObserver(Uri.parse(content://sms),true, smsObserver);And this class:private class SMSObserver extends ContentObserver{ public SMSObserver() { super(null); } @Override public boolean deliverSelfNotifications() { return true; } @Override public void onChange(boolean selfChange) { super.onChange(selfChange); if(!selfChange) //sendResponse context.getContentResolver().unregisterContentObserver(this); } @Override public void onChange(boolean selfChange, Uri uri) { super.onChange(selfChange, uri); if(!selfChange) //sendResponse context.getContentResolver().unregisterContentObserver(this); }}处理方法
尝试使用 ContentObserver 监听群聊程序发送短信时的内容,或者测试其他手机,看看是否出现相同的问题
可以采用如下代码测试
1 2 3 4 5 6 7 8context.getContentResolver().registerContentObserver(Uri.parse(content://sms),true, myContentObserver);或者cursor = context.getContentResolver().query(Uri.parse(content://sms/inbox),newString[] { SMS_ID, SMS_ADDRESS, SMS_READ },read = 0,null,null);cursor.registerContentObserver(myContentObserver);但我不能使用非光标版本,短信/收件箱中的某些原因,
电脑资料
《android开发,视频群聊引发短信异常》(https://www.unjs.com)。的基于游标的版本的缺点是,它似乎需要保持开放的话,那么你必须确保在以后将其关闭。此外,无论是版本被称为读状态发生变化时。