




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南软件职业学院毕业设计毕业选题: 基于Android的短信群发器应用指导教师: 学生姓名: 院系名称: 软件工程系专业班级: Java1304学生学号: 提交日期: 2015年12月19日ii全套设计加扣 3012250582目 录第一章 引言- 1 -1.1课题研究的背景- 1 -1.2课题研究目标及意义- 1 -第二章 主要技术简介- 3 -第三章 系统分析与设计- 5 -3.1系统简要说明- 5 -3.2系统可行性分析- 5 - 3.2.1 技术可行性- 5 - 3.2.2 经济可行性- 5 - 3.2.3 操作可行性- 5 -3.3需求分析- 6 -第四章 系统应用分析- 7 -4.1 应用程序架构- 7 -4.2应用程序交互模型(活动图) - 8 -4.3Linux内核- 8 -4.4 使用用户- 10 -4.5 解决问题- 11 -4.6 用户需要- 11 -4.7 可行性分析- 11 -4.8 需求陈述- 12 - 4.8.1 开发环境- 12 - 4.8.2 运行环境- 12 - 4.8.3 性能需求- 12 - 4.8.4 软件实现原则- 12 -第五章 系统实现- 14 -5.1 系统功能分析- 14 - 5.1.1 短信的发送功能分析- 14 - 5.1.2短消息提示功能分析- 16 - 5.1.3短消息群发功能分析- 19 -第六章 查询发送状态功能分析- 24 -第七章 程序调试与测试- 33 -7.1程序调试- 33 -7.2 程序测试- 33 - 7.2.1 测试目的- 33 - 7.2.2 测试内容- 33 -总结- 35 -参考文献- 36 -致谢- 37 -3第一章 引言1.1课题研究的背景目前android平台手机渗透到我们生活,20世纪末,电子技术获得了飞速的发展,在其推动下基于android平台手机的现代电子产品在我们生活的各个角落都能见到,有力地推动了社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。基于android平台手机的发展趋势,本设计以android平台手机为核心制作了一个短信通。本次设计运用android平台手机作为研究开发对象,配合Java语言程序设计以及面向对象思想设计了一种手机短信通。本设计完成后,能够实现以下功能:短信发送,短消息提示,短消息群发,查询发送状态。在设计时,按照设计的要求,从安全性,经济性,可靠性三个方面进行考虑,通过设计方案的比较,确定出来一套既经济又可行的方案。在设计时按照设计的要求从安全性经济性可靠性三个方面进行考虑通过设计方案的比较确定出来一套既经济又可行的方案。本次设计是对所学知识的综合运用把理论知识和实践相结合在本次设计与检验过程中遇到了许多实际问题比如android平台手机及其运行环境的选择不熟悉开发技巧软件运行不稳定如何设计软件的最佳外观效果等所有的这些问题我们都通过查阅资料咨询老师一一解决了为设计的成功提供了保障。本次通过方案确认介绍了设计中所用的的技术开发思想以及android平台的简介清晰的程序活动图给程序的理解提供了方向还介绍了程序调试软件和硬件调试软件最后对本设计的软件做了一个概述。1.2课题研究目标及意义目前android平台手机渗透到我们生活,20世纪末,电子技术获得了飞速的发展,在其推动下基于android平台手机的现代电子产品在我们生活的各个角落都能见到,有力地推动了社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。基于android平台手机的发展趋势,本设计以android平台手机为核心制作了一个短信通。Android手机的市场占有率超过了Symbian成为全球第一大手机操作系统但是Android自带的短信发送功能十分简单只支持即时发送单条短信本项目的母的是开发一个支持短信群发定时短信的短信通软件实现的主要功能是单号码连发短信可设定发送条数和发送间隔号码段群发短信输入号码段可设置发送间隔清单群发短信和定时短信四大功能界面美观操作简单功能实用。安卓在手机上的应用使得手机的功能有了很大改善,这使得越来越多的人主要依靠手机查询大量信息,而用户们不断提高的需求也决定了越来越多的基于安卓平台的应用软件及系统的产生。本项目是一款基于Android手机平台的短信通软件,使Android手机拥有更加强大的短信发送功能,使手机显得生动灵活化,与人们更为接近,让手机的主人可以在节日群发节日短信,发送定时短信等,方便用户的生活,也使设计者更加熟悉Android的技术和其他市场的特点。经过使用发现Android自带的短信发送功能十分简单,不支持单号码连发、定时短信等功能,然而Android开源的特性给开发者提供了一个完美的平台。本文通过方案确认,介绍了设计中所用到的技术、开发思想,以及android平台的简介,通过清晰的程序活动图,给程序的理解提供了方向。还介绍了程序调试软件和硬件调试软件,最后对本设计的软件做了一个概述。本设计完成后,能够实现以下功能:短信发送,短消息提示,短消息群发,查询发送状态。第二章 主要技术简介 Java是由Sun Microsystems公司于1995年推出的Java程序设计语言和Java平台的总称。Java语言是Android开发人员所选的工具。Android运行时使用自己的虚拟机Dalvik,这并不是多数程序开发人员使用的普通Java虚拟机。Dalvik支持Java编程语言的大部分功能-但并不是全部。Java分为三个体系,分别为Java SE(J2SE,Java2 Platform Standard Edition,标准版),JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企业版),Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和静态的语言。Java 平台是基于 Java 语言的平台。这样的平台非常流行。因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。Java是功能完善的通用程序设计语言,可以用来开发可靠的、要求严格的应用程序。 Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Tools,JDT)。Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。2003年,Eclipse3.0选择OSGi服务平台规范为运行时架构。2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。2009年7月发布代号为GALILEO的3.5版等等,目前,最新是2011年6月22日发布代号为Indigo的3.7版。第三章 系统分析与设计3.1系统简要说明设计与实现一个在Android手机上运行的手机短信发送软件,实现手机短信的基本功能,包括:短信发送,短消息提示,短消息群发,查询发送状态等功能。3.2系统可行性分析从技术性、经济性和操作性方面研究软件编写的可执行性,确保软件能够在后期顺利执行,它是软件开发的最前沿和基础。3.2.1 技术可行性技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求。本软件用的是Java开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此技术上是绝独可行的。软件方面:相关的开发软件,可以方便的从网上下载,易于获得,且可以满足系统需求。3.2.2 经济可行性开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的软件系统、硬件平台等都易于获得,且不需要Android平台机器,用模拟器即可实现开发研究,开发成本低,容易实现,从经济角度来看,该系统可行。3.2.3 操作可行性该课题是利用自己的计算机,且使用Android模拟器,并且在本地上安装JDK、Android跟Eclipse作为软件的开发平台,使开发出来的系统有友好的用户界面、操作简单,因此在操作上是可行的。3.3需求分析根据手机功能使用调查显示,有八成以上的消费者使用手机短信功能。随着手机短信功能的不断加强与完善,手机短信对于人们的意义,已不仅仅只是简单的传递信息,而是向着个性化、人性化的方向发展。短信计数从无到有,从英文到中文,经过了十几年的发展历程,今后的发展趋势就是个性化打造不同的短信设计模板,以实现每个人对短信不同的要求。该系统针对的主要用户是Android手机用户。Android手机短信通系统包括以下主要内容:单号码连发短信,号码段群发短信,清单发送短信,定时发送短信。要设计一个良好的手机短信通软件,就必须首先明确该应用环境对系统的要求。Android手机短信应用背景:方便用户快捷通讯。因此,该系统需要满足以下几方面的需求:(1)短信的发送:添加直接联系人的号码,编写短信内容后,点击“发送短信”发送。(2)短消息提示:收到信息后直接提示用户。(3)短消息群发:用户可以单击“添加联系人”按钮在系统的通讯录中选择需要添加的联系人,然后单击“发送”向之前选择的多个联系人发送信息。(4)查询发送状态:填入正确的电话号码及短消息后单击“发送短信”按钮,便会提示发送的状态。第四章 系统应用分析4.1 应用程序架构在Android SDK中,定义了让开发者使用与核心应用程序相同API的权限。应用程序框架是为了要简化组件的重新利用而设计的,应用程序可以发布功能并为其它应用程序所使用。但是,这要受限于应用程序架构的安全机制,使用者可以用同样的机制来新增、置换组件。目前所有的应用程序是由服务及系统来组成,包含有:1. 一套强大的可扩展的视图系统:用来建构一个应用程序的基本组件,包含了在开发系统画面时,常用的列表、网格、文本框、按钮等控制项,甚至是内嵌的Web浏览器。2. 内容提供者:使应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。3. 资源管理器:提供各种非程序代码的资源让应用程序去使用。例如:本地字符串、图形文件或排版相关的布局文件。4. 通知管理器:提供应用程序在状态栏中显示应用程序自定义的提示信息。5. 活动管理器:管理所有应用程序的生命周期及提供常用的导航回退功能。4.2应用程序交互模型(活动图)图4.2应用交互活动图4.3 Linux内核在Android SDK的作业系统是用Linux,其版本为26版。而所提供的核心系统服务有:安全机制、内存管理、进程管理、网络协议栈和驱动程序模型。Linux内核也同时作为硬件与软件栈之间的抽象层,用来做相互沟通的工作。Android API主要包含了以下几个部分:1. AndroidManifest.xml。AndroidManifest.xml是系统的控制文件。2. 活动。活动就是一个有生命周期的对象。3. 视图。视图可以将其自身绘制到屏幕上。4. 意图。意图是一个简单的消息对象,它表示程序想做某事的“意图。5. 服务。服务是运行在后台的代码。它可以运行在它自己的进程,也可以运行在其他应用程序的进程里,这取决于自身的需要。6. 通知。通知将以小图标的形式呈现在状态栏里,用户通过与图标的交互式操来接收消息。7. 内容提供者。内容提供者是用来提供对设备上数据进行访问。典型的例子就是使用内容提供者来访问联系人列表。通常由以下四个组件来构建一个完整的Android应用程序:活动,意图,接收器,服务内容提供者。然而,并不是所有的Android应用程序都必须具备上面的四个组件,可以由上面的一个或几个来组建。当决定使用以上哪些组件来构建Android应用程序时,需要将它们注册在AndroidManifestxml文件中,这是一个XML配置文件,在这个文件中可以声明应用程序组件以及它们的特性和要求。这个配置文件是每个Android应用程序所必需的。在一个Android应用中,主要是由四种组件组成的,这四种组件可参考上一节的内容。而这四种组件是独立的,它们之间可以互相调用,协调工作,最终组成一个真正的Android应用。例如,在一个联系人维护的应用中,当在一个联系人列表屏幕(假设对应的Activity为listActivity)上,点击某个联系人后,希望能够调出此联系人的详细信息屏幕(假设对应的Activity为detailActivity),为了实现这个目的,listActivity需要构造一个Intent,这个Intent用于告诉系统,要做“查看”动作,此动作对应的查看对象是“某联系人”,然后调用startActivity(Intent intent),将构造的Intent传入,系统会根据此Intent中的描述,到AndroidManifestxml中找到满足此Intent要求的Activity。系统会调用找到的Activity,即为detailActivity,最终传入Intent,detailActivity则会根据此Intent中的描述,执行相应的操作。Android应用程序的生命周期是由Android框架进行管理,而不是由应用程序直接控制。通常,每一个应用程序(入口一般会是一个活动的onCreate方法),都会占据一个进程。当系统内存即将不足的时候,会依照优先级自动进行进程的回收。不管是使用者或开发者,都无法确定应用程序何时会被回收。关于进程的生命周期将在下一节中介绍,本节主要介绍活动的生命周期。一个活动类别除了OnCreate方法之外,还预先定义了OnPause(暂停)、OnResume(继续)等的基本方法,当从一个活动切换到另一个活动的时候,原来的活动将经过一连串的状态改变。开发者可以在程序中添加一些各状态相对应的流程,每次活动状态改变时,就会执行相对应的流程。要让用户有好的使用体验,活动需要在各个周期中负责保管状态、恢复状态、传送资料等工作。Android的虚拟机(VM)是使用堆栈管理。主要有四种状态:活动状态,暂停状态,停止状态,已回收或未启动状态。已回收或未启动状态是指活动尚未被启动、已经被手动终止或已经被系统回收的状态。要手动终止活动,可以在程序中调用finish方法。在大多数情况下,每个Android应用程序都运行在自己的Linux进程中。当应用程序的某些代码需要运行时,这个进程就被创建并一直运行下去,直到系统认为该进程不再有用为止。然后系统将回收进程占用的内存以便分配给其它的应用程序。为了决定在内存不足时让系统杀死哪个进程,Android根据每个进程中运行的组件以及组件的状态把进程放入一个“重要性分级中。进程的类型包括(按重要程度排序):前台进程,可见进程,服务进程,后台进程,空进程。4.4 使用用户用户为所有使用Android智能操作系统的手机用户。暂时不考虑使用Android平板电脑的用户。本系统的最终用户是使用Android智能操作系统的手机用户,暂时不考虑使用Android平板电脑的用户。谷歌称每天有30万台Android手机激活,从一个侧面也反映了庞大的潜在用户群体。Android手机用户涵盖的人群层次比较大众化,有超过半数的Android用户不到35岁,是所有智能手机系统中最多的。看新闻、商业应用和各种工具使用用户较多。4.5 解决问题基于Android平台的短信通软件服务的群体为Android手机用户。用户通过本软件可以方便的进行短信的发送。对同一个电话号段内的号码可设置时间间隔,进行短信群发。输入开始号码和结束号码以及发送间隔,对整个号码段内的手机进行短信群发。从通讯录中选择一条或多条联系人,进行短信群发。从通讯录中选择一条或多条联系人,设置发送时间,实现短信的定时发送。用户可以自定义分组,将不同的联系人进行分组管理。4.6 用户需要如节日或集团内有事情要通知,用户都会使用本软件进行短信的群发或定时发送。4.7 可行性分析成本和风险:基于Android平台的短信通软件是基于Android的应用层开发,金钱成本为开发所需的电脑和测试时所需要的Android手机。如果要发布到Google Market需要一张国际信用卡账号,且注册Google开发者的成本为15美金。因此开发的风险几乎可以忽略。效益:市场的空白,完善的功能整合,良好的用户操作体验一定会吸引大量用户下载使用,在后续的升级版本中加入合适的广告,如节日短信汇总类的网站,不仅方便了用户,更会带来一定的经济效益,同时不会影响用户体验。软件可行性:Google API提供了完备的开发接口,读取通讯录信息,实现数据的存储和短信的发送都是可以实现的。4.8 需求陈述4.8.1 开发环境Windows XP SP3操作系统,MyEclipse7.5,JDK1.6,Android SDK,Android Development Tools(ADT)。StartUML,PowerDesigner。4.8.2 运行环境Android 1.6及其以上版本的手机。4.8.3 性能需求美观的用户界面,良好的操作体验,多线程的使用,多语言版本的支持,数据查询的效率。4.8.4 软件实现原则根据软件工程规范和基于Android的短信通系统的要求及特点,系统开发时必须遵循以下原则。1.实用性原则:开发的系统必须满足实用性需求,做到使用方便,输入数据量尽量小,界面直观,易学易用,不同业务之间界面转换速度快。2.高性能原则:系统在性能上做到实时性强、数据容量小、响应速度快、稳定性高、出错率低、容错性好等优点。3.数据安全性原则:安全性永远是数据库的重要课题,必须采取多种措施保证数据库的安全。4.满足速度要求下的少冗余原则: 冗余指的是逻辑上相同的数据,在不同的记录中重复出现,或在逻辑上能导出存在于数据库的记录中。从理论上讲,冗余的存在,在数据库设计的不合理,是破坏数据库一致性的潜在危险,同时会增加数据空间开销。但是,在特殊情况下,为了满足速度要求,常常设计一些冗余作为数据库记录。5.数据库字符段可空原则:具有默认数值和状态的数据库字符段,采用可空假定。对于可伸缩的数据库,可空字符段在没有数据输入的情况下是不占空间的。6.操作模式可选择性原则:对不同的操作模式,设计不同的功能和不同的界面,或在同一功能和界面下设计多个选择项,以适应模式多变的需求。7.美观化设计原则:在满足实用性的条件下,后台界面设计做到美观大方,大小适中,排列整齐,各种控制键的中文名字简单明了,不同的业务甚至不同的功能,有不同的界面。8.常用性与特殊性相结合原则:对常用的状态和数值,作为缺省,对常用的功能放在主要界面和排前原则,对不常用功能启动时进行折叠和排后。9.数据可维护性原则:数据维护包括权限设置、高级地址的集合运算、无用数据的删除、数据库的清理、数据备份与恢复等功能。10.系统可维护性原则:全面按照软件工程的要求来开发基于Android的短信通系统,做到严格管理、严格测试。每个工作阶段,都具备相应的经过严格审查的文档,为将来系统服务提供技术上的保证。11.统一性原则:建立统一合理的数据库模型,实行统一的文档编排和管理;实行统一的数据库关系命名、文件命名、函数命名、变量命名,实行统一的编程风格。12.系统的可扩展性原则:在满足一期方案的基础上,考虑今后系统可能新增功能(比如,集成一些常用的节日祝福短信,用户自定义短信的开头欢迎语等)带来的系统软硬件的变化,为系统的扩充预留接口。第五章 系统实现5.1 系统功能分析5.1.1 短信的发送功能分析短信的发送界面如图所示图4-3 输入收件人界面图功能模块如下用例名称短信的发送简述对一个号码发送短信参与者用户,移动运营商,短信接收人前置条件用户打开了短信发送的界面后置条件输入了短信接收人的手机号码和短信内容扩展用例无包含用例无触发事件用户点击主界面的发送短信项,用例开始基本操作流程1. 用户填写手机号码2. 填写要发送的短信内容,不能为空3. 点击发送按钮,开始发送短信表4-4 功能模块表部分代码如下:package wyf.ytl;Import android.app.Activity;./该处省略了部分类的引入代码Import android.widge.Toast;Public class Sample_11_1 extends ActivityPublic void onCreate(Bundle savedInstanceState)Super.onCreate(savedInstanceState);setContentView(R.layout.main);Button bdial=(Button)this.findViewById(R.id.Button01);Bdial.setOnClickListener( New View.onClickListener( ) EditText etTel = (EditText)findViewById(R.id.EditText02); String telStr = etTel.getText( ).toString( ); EditText etSms= (EditText)findViewById(R.id.EditText01); String smsStr = etSms.getText( ).toString( ); If(PhoneNumberUtils.isGlobalPhoneNumber(telStr) v.setEnabled(false); sendSMS(telStr,smsStr,v); Else Toast.makeText( Sample_11_1.this, “电话号码不符合格式!”, 5000 ).show(); );Private void sendSMS(String telNo,String smsStr , View v)PendingIntent pi = PendingIntent.getActivity(this,0,new Intent(this,Sample_11_1,class),0);SmsManager sms = SmsManager.getDefault();Sms.sendTextMessage(telNo, null , smsStr , pi , null);Toast.makeText( Sample_11_1.this, “恭喜你,短信发送成功!”, 5000).show();v.setEnabled(true);5.1.2短消息提示功能分析短消息提示界面如图所示图4-5 选择联系人界面图短息功能模块如下所示用例名称短消息提示简述接收到消息后,以Toast的形式提示用户短信内容参与者用户,移动运营商,短信接收人前置条件用户手机处于开机状态后置条件用户收到了新的短信扩展用例无包含用例无触发事件收到新的短信后自动触发基本操作流程1. 用户收到新的短信2. 收到信息后直接到屏幕上提示用户短信发件人以及短信内容表4-6短息功能模块表 部分代码如下:package wyf.ytl;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.telephony.gsm.SmsMessage;import android.widget.Toast;public class MyBroadcastReceiver extends BroadcastReceiver public void onReceive(Context context , Intent intent) if(intent.getAction().equals(“vider.Telephony.SMS_RECEIVED”) Bundle bundle = intent.getExtras(); if (bundle != null) Object myObject = (Object )bundle.get(“pdus”); SmsMessage messages = new SmsMessage myObject.length; For( int i=0; imyObject.length; i+) messagesi = SmsMessage.createFromPdu(byte)myObjecti); For(SmsMessage tempSmsMessage : messages) sb.append(“收到来自: n”); sb.append(tempSmsMessage.getDisplayOriginatingAddress()+”n”); sb.append(“内容为 : n”); sb.append(tempSmsMessage.getDisplayMessageBody(); Toast.makeText(context , sb.toString(), Toast.LENGTH_LONG).show(); 5.1.3短消息群发功能分析短消息群发功能界面如图所示图4-7 发送短信界面图功能模块如下:用例名称清单群发短信简述对多个联系人同时发送短信参与者用户,移动运营商,短信接收人前置条件用户打开了短消息群发的界面后置条件选择多个联系人,填写短信内容扩展用例无包含用例通讯录触发事件用户点击短消息群发项,用例开始基本操作流程1. 用户从通讯录中添加多个联系人2. 填写短信内容3. 点击发送按钮,开始发送短信可选操作流程无表4-8 功能模块表设计代码如下:Package wyf.ytl;import java.util.HashMap;.Import android.widget.Toast;Public class Sample_11_3 extends Activity implements OnClickListener Button select; Button send; EditText people; HashMap peoples = new HashMap(); Public void onCreate(Bundle savedInstanceState) Super.onCreate(savedInstanceState); setContentView(R.layout.main); select = (Button) this.findViewById(R.id.select); send = (Button) this.findViewById(R.id.sent); people = (EditText) this.findViewById(R.id.people); select.setonClickListener(this); send.setonClickListener(this); Public void onClick(View v) If( v = = select) Uri uri = Uri.parse(“content:/contacts/people”); Intent intent = new Intent( Intent.ACTION_PICK, uri); startActivityForResult(intent , 1); Else if(v = = send ) v.setEnabled(false); EditText etSms = (EditText)findViewById(R.id.smsBody); String smsStr = etSms.getText().toString(); Set keySet = peoples.keySet(); Iterator ii = keySet.iterator(); people.setText(“ ”); while(ii.hasNext() Object key = ii.next(); String tempName = (String)key; String tempPhone =peoples.get(key); If(PhoneNumberUtils.isGlobalPhoneNumber(tempPhone) SendSMS(tempPhone , smsStr ,v); private void sendSMS(String telNo , String smsStr ,View v) PendingIntent pi = PendingIntent.getActivity(this,0,new Intent(this,Sample_11_3.class),0); SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(telNo,null,smsStr,pi,null); v.setEnabled(true);第六章 查询发送状态功能分析查询发送状态界面原型图4-9 联系人多选图定时短信功能模块如下:用例名称查询发送状态简述对短信息发送后的状态进行查询参与者用户,移动运营商,短信接收人前置条件用户打开短信的发送的界面后置条件填写联系人,填写短信内容,点击“发送短信”扩展用例无包含用例无触发事件用户点击短信的发送“发送短信”按钮后,用例开始基本操作流程1. 填写联系人,填写短信内容2. 点击“发送短信”3. 提示短信发送的状态可选操作流程无表4-10定时短息功能表设计代码如下: package wyf.ytl; import android.app.Activity;import android.app.PendingIntent;import android.widget.EditText;import android.widget.Toast;public class Sample_11_4 extends Activity implememts OnClickListener EditText number; EditText body; Button send; Public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); send = (Button) this.findViewById(R.id.send); number = (EditText) this.findViewById(R.id.number); body = (EditText) this.findViewById(R.id.body); send.setOnClickListener(this); IntentFilter myIntentFilter = new IntentFilter(“SMS_SEND_ACTION”) ;MyBroadcastReceiver myBroadcastReceiver = new MyBroadcastReceiver();registerReceiver(myBroadcastReceiver,myIntentFilter);Public void onClick(View v) If(v = = send) Send.setEnabled(false); String strNumber = number.getText().toString(); String strBody = body.getText().toString(); SmsManager smsManager = SmsManager.getDefault(); Intent intentSemd = new Intent(“SMS_SEND_ACTION”); PendingIntent sendPI = PendingIntent.getBroadcast(getApplicationContext(),0,intentSemd,0); smsManager.sendTextMessage(strNumber,null,strBody,sendPI,null); send.setEnabled(true); Public class MyBroadcastReceiver extends BroadcastReceiver public void onReceive(Context context , Intent intent) switch(getResultCode() case Activity.RESULT_OK: Toast.makeText(context, “发送成功”,Toast.LENGTH_LONG).show(); break; case SmsManager.RESULT_ERROR_GENERIC_FAILURE: Toast.makeText(context, “发送失败”,Toast.LENGTH_LONG).show(); break; default: Toast.makeText(context, “未知”,Toast.LENGTH_LONG).show(); break; import java.util.ArrayList;import java.util.List;import android.content.Context;import android.database.DataSetObserver;import android.graphics.BitmapFactory;import android.media.Image;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Filter;import android.widget.Filterable;import android.widget.ImageView;import android.widget.ListAdapter;import android.widget.TextView;public class ContactAdapter extends BaseAdapter List mList;private Context mContext;public ContactAdapter(Context context,List list) this.mContext = context;this.mList = list;Overridepublic int getCount() return mList = null ? 0 : mList.size();Overridepublic Object getItem(int position) return mList = null ? null : mList.get(position);Overridepublic long getItemId(int position) return position;Overridepublic View getView(int position, View convertView, ViewGroup parent) View view;ImageView iv_contact;TextView tv_name,tv_phone;if (convertView = null) view = View.inflate(mContext, R.layout.contact_item, null);/iv_contact = (
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030动力电池回收利用商业模式与环保政策导向分析报告
- 幼儿园大班艺术创意手工活动方案
- 2025-2030动力总成系统电动化转型路径与供应链重塑
- 项目经理季度工作总结模板
- 九年级语文期末考试试卷合集
- 现代医院管理与服务质量提升方案
- 四年级数学(四则混合运算)计算题专项练习与答案汇编
- 房地产项目市场调研与风险评估
- 电商平台客服工作标准流程详解
- 数控机床操作规程及安全培训
- 围手术期高血压专家管理共识
- 呼吸内科临床诊疗指南及操作规范
- 外科患者疼痛护理与管理
- 2024年共青团入团考试测试题库及答案
- 韩信点兵与中国剩余定理
- 2024年度网站域名合作契约
- 中国心力衰竭诊断和治疗指南2024解读(完整版)
- 第1章 直线与方程章末题型归纳总结(解析版)
- 眼球破裂伤护理查房
- Unit 1 (知识清单)-2024-2025学年三年级英语上学期期中复习讲练测(译林版三起·2024秋)
- 2024年秋季新人教版八年级上册物理全册教案(2024年新教材)
评论
0/150
提交评论