开发android短信
程序摘要:
Android是现在比较热门的移动终端的操作
系统之一,相对于其他的手机系统,它最大的优点就是开放源码。2011年11月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为58%。在android中,开发者可以使用java作为编程语言来开发应用程序,也可以用c/c++来开发应用程序。
Eclipse也是一个开源的开发平台,并且它是基于java的,所以我想以java为编程语言在eclipse上面开发一个android手机的应用程序--收发短信的程序。
关键字
Android,eclipse,
Java ,开源,收发短信程序
正文
首先配置好开发环境
1. 下载安装eclipse集成开发环境
2. 下载安装java开发包jdk
3. 下载安装android sdk
软件开发包
4. 下载安装android开发工具ADT
注:下载安装过程环境软件具体配置过程略去,并且本文讨论的是在window上面开发apk程序,但是我是在
linux下面操作的。
安装完毕后,开始编写和验证第一个android应用程序"helloworld",验证可以正常地生成android应用程序代码和实际在虚拟设备AVD上执行,如果有android系统的手机,也可以安装apk在手机上面运行。
生成android应用程序代码
首先打开eclipse开发程序,依序选择"file"→"new"→"project",建立新的项目,会出现如图所示的界面,
选择"android project",单击"next"按钮。会出现如图所示的界面,要求设置"new android project"。
填写"project name"为Helloworld,然后点击"next"按钮。就出现了如图所示的界面,要求选择一个android sdk的版本。
我这里选择的是 android 4.0的版本,然后点击"next"按钮。然后又出现一个窗口,填写"package name"为com.Helloworld,然后点击"finish"按钮.Helloworld应用程序已建立在eclipse上。选择Helloworld项目的文件,依次选择"run"→"run as android application",开始编译。过了一会儿会出现所示的android虚拟设备AVD界面,屏幕虚拟设备的屏幕上面会出现Helloworld应用程序界面。当顺利完成以上步骤,看到Helloworld应用程序已经正常执行,那么说明开发环境已经配置好了。
接收短信程序
/*自定义类receivemessage继承自 BroadcastReceiver 类,监听系统服务广播的信息*/
public class receivemessage extends BroadcastReceiver{
/*声明静态字符串,并使用 android.provider.Telephony.SMS_RECEIVED作为Action为短信的依据*/
private static final String mACTION = "android.provider.Telephony.SMS_RECEIVED";
private String num;
private String det;
private String tim;
private databasehelper mydatabasehelper;
@Override
public void onReceive(Context context, Intent intent) {
/*判断传来intent是否为短信*/
if (intent.getAction().equals(mACTION)) {
/*构建一字符串集合变量sb*/
StringBuilder sb = new StringBuilder();
/*接收由intent传来的数据*/
Bundle bundle = intent.getExtras();
/*判断intent是否有数据*/
if (bundle != null) {
/*pdus为android内置短信参数identifier
通过bundle.get("")返回一包含pdus的对象*/
Object[] myOBJpdus = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[myOBJpdus.length];
for (int i = 0; i < myOBJpdus.length; i++) {
messages[i] = SmsMessage
.createFromPdu((byte[]) myOBJpdus[i]);
}
/*将送来的短信合并自定义信息于StringBuilder当中*/
for (SmsMessage currentMessage : messages) {
sb.append("来自:\n");
/*取得发信人的电话号码,并存储到num里面*/ num = currentMessage.getDisplayOrigina