`
aijuans
  • 浏览: 1545893 次
社区版块
存档分类
最新评论

android 开发,视频群聊引发短信异常

阅读更多

我正在开发一个收到信息后发送一条短信进行回复的程序(自动回复),当我的手机启动群聊程序,我的程序并没有成功的发送消息,于是我采用了如下的代码解决这个问题。

<intent-filter android:priority="500">
    <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>

在信息发送后,我专门记录了SMS日志,但是现在 短信接收优先级高于群聊,发送的消息被写入到用户的短信记录收到的消息后,他应该展示如下日志:

Response Message
Received Message - this is what triggered the response

但是现在他展示的日志不对,如下

Received Message - triggers response

Response Message

我感觉我的程序被群聊的程序影响了,扰乱了我的程序,现在不知道该如何处理.

下面是我代码:

 

[java] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. context.getContentResolver().registerContentObserver(  
  2. Uri.parse("content://sms"),  
  3. true,   
  4. smsObserver);  
  5. And this class:  
  6. private class SMSObserver extends ContentObserver  
  7. {  
  8.     public SMSObserver()  
  9.     {  
  10.         super(null);  
  11.     }  
  12.    
  13.     @Override  
  14.     public boolean deliverSelfNotifications() {  
  15.         return true;  
  16.     }  
  17.    
  18.     @Override  
  19.     public void onChange(boolean selfChange) {  
  20.         super.onChange(selfChange);  
  21.         if(!selfChange)  
  22.             //sendResponse  
  23.         context.getContentResolver().unregisterContentObserver(this);  
  24.     }  
  25.    
  26.     @Override  
  27.     public void onChange(boolean selfChange, Uri uri) {  
  28.         super.onChange(selfChange, uri);  
  29.         if(!selfChange)  
  30.             //sendResponse  
  31.         context.getContentResolver().unregisterContentObserver(this);  
  32.     }  
  33. }  

 

 

处理方法

 

尝试使用 ContentObserver 监听群聊程序发送短信时的内容,或者测试其他手机,看看是否出现相同的问题

可以采用如下代码测试

1
2
3
4
5
6
7
8
context.getContentResolver().registerContentObserver(Uri.parse("content://sms"), true, myContentObserver);
或者
cursor = context.getContentResolver().query(Uri.parse("content://sms/inbox"),
            new String[] { SMS_ID, SMS_ADDRESS, SMS_READ },
            "read = 0",
            null,
            null);
cursor.registerContentObserver(myContentObserver);

但我不能使用非光标版本,短信/收件箱中的某些原因。的基于游标的版本的缺点是,它似乎需要保持开放的话,那么你必须确保在以后将其关闭。
此外,无论是版本被称为读状态发生变化时。

 

 


原文地址:http://www.itmmd.com/201411/141.html 
该文章由 萌萌的IT人 整理发布,转载须标明出处。

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics