智能手机短信自动转发应用程序开发*

2015-04-15 08:03胡冰群耿蕊北京信息科技大学仪器科学与光电工程学院
信息通信技术与政策 2015年1期
关键词:短消息应用程序短信

胡冰群 耿蕊 北京信息科技大学仪器科学与光电工程学院

智能手机短信自动转发应用程序开发*

胡冰群 耿蕊 北京信息科技大学仪器科学与光电工程学院

在移动智能手机走入人们日常生活的同时,遗忘手机的现象也变得越来越平常。手机遗忘会严重影响及时接听电话和获取信息,对于生活在信息大爆炸社会的人们来说,这也许就意味着机会的丧失,造成不必要的经济损失,甚至会影响到家庭的稳定与和谐。此项目就是基于Android操作系统,开发应用程序,让移动智能手机用户能够通过指令远程控制手机,将手机接收到的短消息以及未接来电记录上传到PC端,完成信息的及时获取。

安卓操作系统 特殊字段识别 短消息转发

1 引言

随着移动通信技术向前发展,越来越多的移动通信产品不断普及。移动智能手机不再是遥不可及的奢侈品,伴随其销售价格逐渐平民化,已完全走入大众的日常生活,为人们带来了便捷的通信服务,成为人们日常生活不可或缺的重要工具。

移动智能手机主要是指像个人电脑一样,具有独立的操作系统,可以由用户自行安装软件、游戏等第三方服务商提供的程序,通过此类程序来不断扩充手机的功能,并可以通过移动通讯网络来实现无线网络接入的一类手机的总称。当前,移动智能手机的操作系统主要以Android、iOS和Windows Mobile 3种为主,其中尤以Android为甚。Android以其独有的开源模式占据75%的市场份额,在谷歌将其收购之后,已经成为全球最受欢迎的智能手机开发平台之一。此平台为开发人员提供了大量的实用库和工具,使开发人员可以很快速地创建自己的应用。

Android的系统架构和其操作系统一样,采用了分层的架构(见图1)。Android底层以Linux内核为基础,由C语言开发,只提供基本功能。中间层包括函数库、虚拟机,由C++开发。最上层是各种应用软件,包括通话、短信、电子邮件、浏览器、日历、地图等。开发人员可以用自己编写的应用程序来代替Android平台提供的应用程序。

基于Android平台的开源优势和构架优势,开发应用程序就变得非常方便。本文就是基于Android操作系统,开发应用程序,让移动智能手机用户能够通过指令远程控制手机,将手机接收到的短消息转移到指定的手机号上,完成信息的及时获取。

用户在手机上安装此应用并设置属于自己的个性化特殊字段,当手机被遗忘时,可以使用另一部手机向被遗忘的手机发送该特殊字段,则被遗忘手机里的未读短信内容、条数以及来信号码就会被转发至现有手机上。若用户的手机开通了运营商的来电提醒业务,那么此应用也能非常方便地将运营商的来电提醒短信转发到用户指定的手机上。

众所周知,在移动智能手机走入人们日常生活的同时,遗忘手机的现象也变得越来越平常。手机遗忘会严重影响及时接听电话和获取信息,对于生活在信息大爆炸社会的人们来说,这也许就意味着机会的丧失,造成不必要的经济损失,甚至会影响到家庭的稳定与和谐。如果能够拥有此应用,那么人们的生活将会更加便捷。

2 开发环境搭建

以下是针对Windows环境下,安装Android开发环境所需的程序步骤:

(1)安装JDK(Java Development Kit)。根据提示安装到本地磁盘上,各平台的JDK可以在http://java. sun.com网站下载。

图1 Androidr系统框架

(2)下载Eclipse。下载地址为http://www.eclipse. org/downloads/,下载时选择“Eclipse IDE for Java Developers”或“Eclipse IDE for Java EE Developers”这两种版本。Eclipse集成开发环境不需要安装即可执行,解压到适当目录下即可。

(3)安装安卓开发工具扩展包ADT(见图2)。打开Eclipse文件目录下的Eclipse图标,启动Eclipse。选择“Help”下的“Software Updates”或“Install New Software”进入以下对话框:

选择“Add”进入新的对话框。在弹出的对话框中Location一栏里输入以下网址:http://dl-ssl.google. com/android/eclipse/site.xml,完成后选择“OK”。全选“Developer Tools”中的选项。选择“Next”,按照指示安装。

(4)下载SDK。在下载网址:http://developer. android.com/sdk/index.html上下载SDK(Software Development Kit),解压之后进入SDK的安装。启动Eclipse,在菜单栏上Window下选择Preference选项,会弹出一个窗口。点选左侧“Android”标签,在“SDK Location”一栏处点选“Browse”,选择下载好的SDK文件所在的目录,按下“OK”即可。

这些步骤完成之后通常还是不能正常使用,还需要设置环境变量。右键点“我的电脑”图标,在弹出菜单中依次选择“属性”—“高级系统设置”—“环境变量”。在用户变量中新建“ANDROID_SDK_HOME”,在变量值一栏中填写android-sdk-windows下tools的路径(如E:android-sdk-windows ools)。在系统变量中找到变量“PATH”,将上述路径加到变量值末尾即可。这样,Eclipse集成开发环境便搭建完成了。

3 功能实现

3.1 总体方案

基于Android操作系统,利用系统提供的接口,开发应用程序进行短消息特殊字段识别,控制移动智能手机完成模式变换,进入自动短消息转发状态。主要包括特殊字段设计、短消息特殊字段识别模块开发、短消息自动转发模块开发、程序界面开发几个部分。该应用功能流程如图3所示。

3.2 特殊字段初始化及设置

图2 ADT安装

图3 功能实现流程

为了避免应用程序在接收到正常短消息时,误判为远程控制指令进行误操作,需要对应用程序中要使用的远程控制指令进行特殊字段设计。在软件未启动时,先设置一个初始值为“找回短信”,private static String a=“找回短信”;软件未打开时,向该手机发送“找回短信”即可将未读短信转发向目标手机。软件打开的情况下,用户可以根据喜好去设置特殊字段,但是要注意字段的特殊性,避免上述误判情况。

3.3 短消息内容识别及电话号码提取原理

短消息在Android操作系统中是以数据库的形式进行存储的,主要包含以下几个字段:

应用程序通过Android操作系统提供的相应接口,可以完成对数据库中指定的短消息的读取,对读取出的短消息Body部分的内容进行比对判断,如果与定义的特殊字段相同,则提取短消息Person部分的内容进行保存,作为后续进行短消息转发的目标号码。

对于遗忘手机的人来说,只需向安装了短信转发软件的手机发送已设置的特殊字段即可享受到短信的转发服务。

3.4 短消息转发原理

应用程序可以通过Android操作系统提供的相应接口,获取新近接收到的短消息Person、Subject和Body几个部分内容,组成新的短消息Body,同时使用特殊指令识别得到的电话号码,利用Android操作系统提供短消息发送功能,完成相应的短消息转发。

3.5 权限配置

Android在开发时要充分考虑安全问题,为了防止病毒等恶意程序的入侵,Android提供了权限管理,在使用到所有敏感功能时,必须在配置文件中列出所需要使用的权限。Android的Manifest.xml文件位于安卓的根目录下,它声明了Android应用程序所必须具备的权限。手机遗忘救星在实现其功能时需要提取用户手机中未读的短信,提取发送短信的联系人号码,并且将短信转发出去,因此需要在配置系统文件Manifest.xml时,设置如下系统权限:

3.6 资源配置

res目录下的文件,顾名思义,是用来存放程序所用到的所有资源。drawable-hdpi、drawable-ldpi、drawable-mdpi、drawable-xhdpi4个不同的drawable文件夹用于存放不同分辨率的图片,可将开发所需的图片分类放置在这些目录下,以方便后续使用;在layout目录下的xml格式界面描述文件用于表述应用程序的界面布局,也用于描述界面和接口组件;values中的xml文件是参数描述,主要用于在代码中通过R类来调用,这样可将代码和资源分开管理。

例如:string.xml用来定义所需的字符串和数值。例如遗忘救星所需字符串资源可配置如下:

同时,可新建xml文件,用来定义其他所需资源,例如colors.xml(定义颜色)、dimens.xml(定义尺寸)等。

3.7 主程序的开发

用Eclipse新建一个Android应用程序项目后,开发环境会自动为该项目创建相关目录,开发人员可以方便地分类管理资源。src目录存放了Android应用程序所有的程序源代码。开发人员的主要开发过程就是在开发src目录下的程序代码。

为防止用户忘记设置特殊字段,本程序设置了一个特殊字段初始值——“找回短信”。在新建的ParamInfo.java中使用如下代码:

程序首先从获得接收到的特殊字段,与预设值进行比对,同时获得发送特殊字段的手机的号码,即短信转发的目标号码。与此同时还可判断未读短信的数量。主要实现方法如下:

当程序判断到有系统接收到短信时,通过pdus获得接收到的所有短信消息,获取短信内容,并且构建短信对象数组,用来实现手机短信转发内容的重组。

获取短信发送者,发送内容以及发送时间:

4 界面设计及功能开发

为了人机交互的简洁实用,手机遗忘救星的界面设计比较简单。主要界面分布及跳转如图4所示。

4.1 界面布局

图4 界面设计及页面跳转

遗忘救星的界面主要包括首页、使用指南、特殊字段设置界面。主页有两个按钮,即使用指南以及设置。设置界面包括一个输入框以及3个按钮,分别是确定、重置以及返回首页。

主界面是一个系统的开始,能够实现各个模块的切换。主界面的布局代码主要在res/layout下的activity_main.xml下编写。设置界面是在res/layout下新建的set_main.xml下编写。界面布局有两种实现方式,一种是通过代码实现,另一种更简单的方法是通过palette中现有的直接添加。为了能够在点击按钮之后,实现相应的跳转以及功能,需要为每个按钮添加点击事件监听器OnClickListener,为了能够在代码中识别该按钮,每个按钮都有一个唯一的标示符,就是它的id属性。例如帮助按钮的id可设置为android:id="@+id/ helpbutton"。程序在判断特殊字段是否匹配时需要获取文本框中用户输入的特殊字段,因此EditText也需要添加id属性android:id="@+id/text_distinct"。添加事件监听代码如下:

4.2 界面功能模块开发

遗忘救星最关键的界面就是特殊字段的设置界面,包括设置特殊字段并保存功能、重置功能以及首页的返回,用switch语句即可实现。

特殊字段设置及保存功能实现代码如下:

重置按钮功能实现如下:

5 功能测试

5.1 预期目标

短信转发软件在未启动状态,手机接收到未读短信时,向该手机发送“找回短信”,则发送方将会收到未读短信的内容、联系人号码以及手机里未读短信的条数。

软件启动之后,用户可设置自己的特殊字段,当手机里有未读短信时,向该手机发送设置好的特殊字段,发送方将会同样收到未读短信的内容、联系人号码以及手机里未读短信的条数。

5.2 测试过程及总结

第一次完成该软件时,只用了一部手机进行测试,发现功能正常。但是,用两部手机进行测试时,发现短信实际上是转发到原手机上。于是进行调试,发现目标号码提取错误。经过修改,功能可以正常实现。但是,使用的前提是手机系统短信的弹窗提醒必须关闭,否则程序将弹窗短信视为已读就无法实现功能。另外,某些品牌的手机测试失败,估计是手机出厂权限设置的影响,或者需要刷机获取权限后方可使用。

1 吴亚峰,于复兴.Android应用开发完全自学手册.人民邮电出版社

2014-12-24)

本科生培养—大学生科研训练(市级)项目(PXM2014_014224_000079)资助

猜你喜欢
短消息应用程序短信
删除Win10中自带的应用程序
道歉短信
试论电视新闻短消息的采写策略
谷歌禁止加密货币应用程序
代发短信
不同模式及编码条件下GSM-R短消息传输特性对比研究
小灵通里的父爱
三星电子将开设应用程序下载商店
“八一”节日短信之一
微软软件商店开始接受应用程序