1 / 15
文档名称:

Android开发学习教程—Android短信收发android模拟器实践(二).doc

格式:doc   大小:171KB   页数:15页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Android开发学习教程—Android短信收发android模拟器实践(二).doc

上传人:雾里看花 2019/4/7 文件大小:171 KB

下载得到文件列表

Android开发学习教程—Android短信收发android模拟器实践(二).doc

文档介绍

文档介绍:蚇引言螃前面我们介绍都只是如何发送SMS消息,接下来我们介绍如何接收SMS消息,及另一种发短信的方式并增强为可以发生图片等,最后介绍一下emulator工具。本文的主要内容如下:芁1~5见Android开发之旅:短信的收发及在android模拟器之间实践(一)蕿6、温故知新之Intent膆7、准备工作:SmsMessage类蒃8、SMS接收程序节9、另一种发送短信的方式:使用Intent蚈10、增强SMS为MMS薆6、温故知新之Intent芄此系列前面简单地接受过意图(Intent),这里再次简单介绍一下,在短信接收程序和使用Intent发送SMS中我们要用到。android应用程序的三大组件——Activities、Services、BroadcastReceiver,通过消息触发,这个消息就称作意图(Intent)。下面以Acitvity为例,介绍一下Intent。Android用Intent这个特殊的类实现在Activity与Activity之间的切换。Intent类用于描述应用的功能。在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有MAIN、VIEW、PICK、EDIT等,我们在短信接收程序中就用到从广播意图中提取动作类型并判断是否是””,进而作深一步的处理。而动作对应的数据则以URI的形式表示。例如,要查看一个人的联系方式,需要创建一个动作为VIEW的Intent,以及表示这个人的URI。莄通过解析各种Intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,Activity将会调用startActivity(“指定一个Intent”)方法。然后,系统会在所有已安装的应用程序中定义的IntentFilter中查找,找到最匹配的Intent对应的Activity。新的Activity接收到指定的Intent的通知后,开始运行。当startActivity()方法被调用时,将触发解析指定Intent的动作,该机制提供了两个关键的好处:肀Activity能够重复利用从其他组件中以Intent形式产生的请求。羅Activity可以在任何时候被具有相同IntentFilter的新的Activity取代。羄7、准备工作:SmsMessage类膁顾名思义,SmsMessage类是一个表示短信的类,为了更好地了解Android的短信机制及以后更好地编写短信相关程序,这里介绍一下该类的公有方法和常量,及嵌套枚举、类成员。腿公有方法:蚈publicstaticint[]calculateLength(CharSequencemsgBody,booleanuse7bitOnly)参数:msgBody-要封装的消息、use7bitOnly-如果为TRUE,不是广播特定7-比特编码的部分字符被认为是单个空字符;如果为FALSE,且msgBody包含非7-比特可编码字符,长度计算使用16-比特编码。返回值:返回一个4个元素的int数组,int[0]表示要求使用的SMS数量、int[1]表示编码单元已使用的数量、int[2]表示剩余到下个消息的编码单元数量、int[3]表示编码单元大小的指示器。螄publicstaticint[]calculateLength(StringmessageBody,booleanuse7bitOnly)参数和返回值跟上面类似节publicstaticSmsMessagecreateFromPdu(byte[]pdu)从原始的PDU(protocoldescriptionunits)创建一个SmsMessage。这个方法很重要,在我们编写短信接收程序要用到,它从我们接收到的广播意图中获取的字节创建SmsMessage。薁publicStringgetDisplayMessageBody()返回短信消息的主体,或者Email消息主体(如果这个消息来自一个Email网关)。如果消息主体不可用,返回null。这个方法也很重要,在我们编写短信接收程序也要用到。肈publicStringgetDisplayOriginatingAddress()返回信息来源地址,或Email地址(如果消息来自Email网关)。如果消息主体不可用,返回null。这个方法在来电显示,短信接收程序中经常用到。蒅publicStringgetEmailBody()如果isEmail为TRUE,即是邮件,返回通过网关发送Email的地址,否则返回null。()上的索引(从1开始的)虿publicStringgetMessageBody()以一个String返回消息的主体,如果它存在且是基于文本的。薇publicSmsMessage