我正在开发一个收到信息后发送一条短信进行回复的程序(自动回复),当我的手机启动群聊程序,我的程序并没有成功的发送消息,于是我采用了如下的代码解决这个问题。
<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
我感觉我的程序被群聊的程序影响了,扰乱了我的程序,现在不知道该如何处理.
下面是我代码:
- 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
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人 整理发布,转载须标明出处。
相关推荐
【Android局域网群聊源码】项目是一个...通过分析和学习这个【Android局域网群聊源码】,初学者不仅能掌握Android的基本开发技能,还能了解到网络通信、多线程、数据交换等高级主题,对提升Android开发能力大有裨益。
3. **Android Studio**:作为Android开发的主要集成开发环境,Android Studio提供了一系列强大的工具。在这个项目中,它可以帮助我们编写、编译、调试代码。使用3.1.2版本,意味着我们可以享受到Gradle自动化构建...
1. **Android开发环境**:使用Android Studio,集成开发环境(IDE),支持代码编写、调试和打包。 2. **网络编程**:可能使用Socket编程实现局域网内的数据传输,或者使用Bonjour/Zeroconf实现设备的自动发现。 3. *...
在本文中,我们将深入探讨如何在Android平台上利用MQTT(Message Queuing Telemetry Transport)协议实现单聊和群聊功能。MQTT是一种轻量级、发布/订阅模式的网络协议,广泛应用于物联网(IoT)和移动应用,因为它对...
在Android应用开发中,构建一个具有自定义群聊和表情功能的聊天系统是一项常见的任务。环信(Easemob)作为一个成熟的即时通讯云服务提供商,提供了丰富的SDK和API,帮助开发者快速实现这一功能。本篇文章将深入探讨...
在Android开发中,HorizontalListView是一个自定义视图组件,它扩展了ListView的功能,允许用户水平滚动条目,而默认的ListView则是垂直滚动。 【描述解析】 描述中提到的是".zip"文件,通常包含源代码、资源文件和...
【标签】"安卓"和"源码"是关键词,强调了这个资源与Android开发有关,而"android"进一步明确了这是针对Android平台的代码。这表明开发者可以通过分析和学习这些源码,了解Android应用中的高级特性和最佳实践。 ...
这个解决方案涵盖了Android客户端的开发,以及Java后台服务器的构建。我们将会分析每个部分的关键知识点,并提供必要的代码片段以帮助理解。 首先,让我们从Android客户端开始。在Android Studio中,你需要创建一个...
总之,这个"android基于asmack的带群聊带表情的源码"项目是一个宝贵的资源,不仅展示了如何利用ASMack库构建IM应用,还涵盖了群聊和表情功能的实现,对于提升Android即时通讯开发能力大有裨益。通过深入研究和实践,...
HorizontalListView是Android开发中一种特殊的视图组件,它与我们常见的ListView不同,主要在于它可以实现水平滑动的效果,类似于微信中的发起群聊界面。在这个源码项目中,开发者通过自定义View来达到类似效果,...
在IT行业中,构建类似微信的群聊功能是一项常见的需求,特别是在开发社交应用时。"仿微信发起群聊"的功能设计涉及到多个技术点,包括用户界面(UI)设计、数据处理和用户交互。以下是对这个功能的详细解析: 1. **...
【标题】:“Android群聊私聊App开发” 在Android平台上构建一个群聊和私聊应用程序涉及到许多关键的技术点。首先,我们需要理解Android应用的基本架构,它通常基于组件模型,包括Activity、Service、...
【标题】"安卓Android源码——HorizontalListView仿微信发起群聊.zip" 提供了一个学习和研究Android开发的实例,特别是关于实现类似微信发起群聊功能的HorizontalListView组件。HorizontalListView是一种特殊的视图...
本教程含源码,资料完善,内容丰富,包括: 安卓开发环境搭建、用户注册登录、好友管理、单聊、群聊、消息发送、表情发送、发送图片、语音聊天等功能开发。 百度云盘下载。
7. **封装APP**:为了让H5应用能够像原生应用一样运行,项目提供了将H5页面封装为移动应用的可能性,这通常通过PhoneGap、Cordova等技术实现,它们可以将H5页面打包成iOS或Android应用,利用原生平台的API,提供更好...
在Android开发领域,构建一个即时聊天工具,如YQ,是一项复杂的任务,它涉及到多个关键技术点。本项目仿照QQ,旨在实现网络即时聊天功能,让用户体验到实时的信息交流。以下将详细介绍涉及的关键知识点: 1. **...
Asmack是一个开源的XMPP库,它允许开发者在Android平台上构建实时通信应用,如聊天、群聊、文件传输等功能。下面将详细探讨这个源码中的关键知识点。 1. **XMPP协议**:XMPP(Extensible Messaging and Presence ...
Java开发基于SpringBoot+WebSocket+Redis分布式即时通讯群聊系统。一个基于Spring Boot + WebSocket + Redis,可快速开发的分布式即时通讯群聊系统。适用于直播间聊天、游戏内聊天、客服聊天等临时性群聊场景。 ...
HorizontalListView仿微信发起群聊是Android开发中的一个实践案例,主要目标是实现类似微信应用中的横向滑动选择联系人创建群聊的功能。这个项目的核心在于自定义View组件——HorizontalListView,它扩展了Android...