您的位置:首页 > 移动开发 > Android开发

【Android】短信应用——短信发送

2011-10-15 01:00 239 查看
前几天写了一个关于实时获取短信的文章,后来想到以前写的一个有发短信功能的工程,想到其中的好处让我直流口水,今天就说说有关如何通过代码实现短信发送。





当时写完后测试,发现最大的好处就是短信发出去后,在发件箱中没有“迹象”;也就是说,只要用户咨询通信服务商,他是不会知道我们偷偷做了些什么……

(只是涉及权限了,于是乎,豌豆荚先生就会毫不留情的把你的程序牵扯到的权限,毫无保留的告诉用户……唉!)

PS:后来又写了一篇章关于发送短信存入发件箱的文章

文章链接:/article/2490808.html

资源链接:http://download.csdn.net/detail/etzmico/3732601

下面来看看代码吧。

先展示下布局。

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout android:id="@+id/widget40"
	android:layout_width="fill_parent" android:layout_height="fill_parent"
	xmlns:android="http://schemas.android.com/apk/res/android">
	<TextView android:id="@+id/tel_num_send" android:layout_width="wrap_content"
		android:layout_height="25px" android:text="Tel Number:"
		android:layout_x="10px" android:layout_y="22px">
	</TextView>
	<EditText android:id="@+id/telNumText_send"
		android:layout_width="197px" android:layout_height="35px"
		android:text="" android:textSize="18sp" android:layout_x="90px"
		android:layout_y="12px">
	</EditText>
	<EditText android:id="@+id/message_copntent_send"
		android:layout_width="319px" android:layout_height="86px"
		android:text="" android:textSize="18sp" android:layout_x="0px"
		android:layout_y="112px">
	</EditText>
	<Button android:id="@+id/send_button_send" android:layout_width="wrap_content"
		android:layout_height="wrap_content" android:text="Send"
		android:layout_x="120px" android:layout_y="212px">
	</Button>
	<TextView android:id="@+id/message_content_text_send"
		android:layout_width="wrap_content" android:layout_height="wrap_content"
		android:text="Input Message" android:layout_x="10px" android:layout_y="82px">
	</TextView>
</AbsoluteLayout>




我大概画了一个短信发送页面,比较简陋,各位一笑而过即可……其中主要包含一个发送号码编辑窗口,一个发送内容编辑窗口以及一个发送按钮。

布局预览



接下来是功能实现部分代码

// 短信发送
					SmsManager smsMgr = SmsManager.getDefault();
					Intent i = new Intent("cn.etzmico.smssending");
					PendingIntent dummyEvent = PendingIntent.getBroadcast(
							SMSSending.this, 0, i, 0);
					try {
						smsMgr.sendTextMessage(telNumStr, null, messageStr,
								dummyEvent, dummyEvent);
					} catch (Exception e) {
						Log.e("SmsSending", "SendException", e);
					}


最后别忘了加权限

Manifest.xml

<uses-permission android:name="android.permission.RECEIVE_SMS" />
	<uses-permission android:name="android.permission.SEND_SMS" />


看看效果吧。
我用的是两台虚拟机掩饰的。
先说明下,有的初学者可能一直在迷惑,虚拟机窗口左上角的“代号”是什么。
我在这里解释下,那个其实就相当于虚拟机的号码,你的手机装上SIM卡啊UIM卡啊就可以拨打电话了,对吧?虚拟机也是,不过它不能打电话,但是发短信还是可以的。



我们来启动两步虚拟机,分别运行,目的是为了双向演示。

先让5554给5556发条信息。



分别输入短信接受号码和短信内容,最后点击发送按钮。



注意右边那台虚拟机的最上面,5556虚拟机已经接到短信了,不过5556那边显示的发送人的号码只是系统随虚拟机一起Creat出来的。

下面我们试试5556给5554发。



也成功了,很明显,发送人的号码和刚才不一样,也就是说,一台模拟器一个绑定了一个模拟号码。

关于短信发送的内容……OVER~

工程资源:http://download.csdn.net/detail/etzmico/3715837
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: