- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
短信收发项目说明书
项目说明书
项目名称:短信收发
项目实现的功能
短信接收函数、实现短信自动回复功能
项目开发人员:
组长:杨杭
组员:郭秋阳、田进波、夏雪燕、潘慧敏。
项目开发人员分工:
杨杭: 代码的编写、运行
郭秋阳:代码的调试
田径波:手机app运行的分析建议
潘慧敏:需求分析说明书、项目开发说明书。
夏雪燕:项目测试说明、app安装说明。
需求分析说明书
项目的需求:
在全球网络普及的现代,人们的联系虽然不再只能靠着电话短信而是产生了更多的社交软件,但是这并不代表短信功能就可删掉。短信依然是必备的正规通信不二选择。当人们有重要事情需要沟通时大多会选择手机电话或短信。而且对于并不精通网络的老年人来说短信也是对他们错过重要电话的一种很好的帮助。
项目的实现可能性:
由于短信广播是有序广播,如果我们不想让Android自带的短信程序接收到短信,就可以设置我们自身接收器的优先级,同时在我们接受完广播后将广播截断,阻止其被Android自带的短信程序接收到。
项目开发说明书
项目开发环境说明
基于android studio 环境下activity_main.xml文件用于显示短信发送者号码和显示短信内容以及activity_send_msg.xml文件构成的
在安卓虚拟机运行测试结果
项目设计思路
(1) 接收短信
创建内部广播接收器类,接收系统发出的短信广播
从获得的内容中解析出短信发送者和短信内容
在Activity中注册广播
添加接收短信权限
(2)发送短信
获取接收者的号码和短信内容
获得短信发送管理实例
构造PendingIntent启动短信发送状态监控广播
调用发送短信函数,传入参数发送短信
构造广播接收器内部类监控短信是否发送成功
获得广播接收器实例和IntentFilter实例,注册广播接收器
在onDestroy()中取消注册的广播接收器
在AndroidManifest.xml文件中加入短信发送权限
4 项目具体实现
将在虚拟机上运行正确无误的代码转换为apk压缩传送到手机中
通过真实手机测试运行
核心代码说明
public void sendSmsMessage(String phoneNumber, String content){
?SmsManager smsManager = SmsManager.getDefault();
?//判断短信内容的长度,如果长度大于70就会出错,所以这步很重要
messageReceiver = new MessageReceiver();
//设置较高的优先级
Bundle bundle = intent.getExtras();
//提取短信消息
Object[] pdus = (Object[]) bundle.get(pdus);
SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i messages.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
}
//获取发送方号码
String address = messages[0].getOriginatingAddress();
String fullMessage = ;
for (SmsMessage message : messages) {
//获取短信内容
fullMessage += message.getMessageBody();
}
//截断广播,阻止其继续被Android自带的短信程序接收到
private void initView() {
toEdit = (EditText) findViewById(R.id.to_ed);
toContent = (EditText) findViewById(R.id.to_content);
//添加发送按钮的点击监听事件
private void sendMessage() {
//获取短信接收者号码
String to = toEdit.getText().toString();
//获取发送短信内容
String content = toContent.getText().toString();
//获得广播接收器实例和IntentFilter实例
sendStatusReceiver
文档评论(0)