Chinaunix
标题:
实现 Android 发短信功能
[打印本页]
作者:
ruanjwei2011
时间:
2011-12-21 08:41
标题:
实现 Android 发短信功能
和上一篇文章一样,发短信在android开发中也是很常用的功能。
运行效果如图所示:
首先新建一个android project
在string.xml中定义需要用到的字符串:
<
?
xml
version
=
"1.0"
encoding
=
"utf-8"
?
>
<
resources
>
<
string
name
=
"hello"
>
Hello World
,
MainActivity!>
<
string
name
=
"app_name"
>
发短信程序
<
/
string
>
<
string
name
=
"str_input_phone_number"
>
请输入手机号
<
/
string
>
<
string
name
=
"str_input_sms_content"
>
请输入短信内容
<
/
string
>
<
string
name
=
"str_send_sms"
>
发送短信
<
/
string
>
<
string
name
=
"str_remind_input_phone_number"
>
请输入手机号
<
/
string
>
<
string
name
=
"str_remind_sms_send_finish"
>
发送完成
<
/
string
>
<
/
resources
>
在main.xml中编辑界面控件代码:
<
?
xml
version
=
"1.0"
encoding
=
"utf-8"
?
>
<
LinearLayout xmlns
:
android
=
"http://schemas.android.com/apk/res/android"
android
:
orientation
=
"vertical"
android
:
layout_width
=
"fill_parent"
android
:
layout_height
=
"fill_parent"
>
<
TextView
android
:
layout_width
=
"fill_parent"
android
:
layout_height
=
"wrap_content"
android
:
text
=
"@string/str_input_phone_number"
/
>
<
EditText
android
:
layout_width
=
"fill_parent"
android
:
layout_height
=
"wrap_content"
android
:
id
=
"@+id/phone_number_editText"
/
>
<
TextView
android
:
layout_width
=
"fill_parent"
android
:
layout_height
=
"wrap_content"
android
:
text
=
"@string/str_input_sms_content"
/
>
<
EditText
android
:
layout_width
=
"fill_parent"
android
:
layout_height
=
"wrap_content"
android
:
id
=
"@+id/sms_content_editText"
/
>
<
Button
android
:
layout_width
=
"wrap_content"
android
:
layout_height
=
"wrap_content"
android
:
text
=
"@string/str_send_sms"
android
:
id
=
"@+id/send_sms_button"
/
>
<
/
LinearLayout
>
最后在MainActivity中编写发送短信的逻辑代码:
package
com
.
sms
.
ui
;
import
java
.
util
.
List
;
import
android
.
app
.
Activity
;
import
android
.
os
.
Bundle
;
import
android
.
telephony
.
SmsManager
;
import
android
.
view
.
View
;
import
android
.
view
.
View
.
OnClickListener
;
import
android
.
widget
.
Button
;
import
android
.
widget
.
EditText
;
import
android
.
widget
.
Toast
;
public
class
MainActivity
extends
Activity
{
/** Called when the activity is first created. */
@
Override
public
void
onCreate
(
Bundle savedInstanceState
)
{
super
.
onCreate
(
savedInstanceState
)
;
setContentView
(
R
.
layout
.
main
)
;
phone_number_editText
=
(
EditText
)
findViewById
(
R
.
id
.
phone_number_editText
)
;
sms_content_editText
=
(
EditText
)
findViewById
(
R
.
id
.
sms_content_editText
)
;
send_sms_button
=
(
Button
)
findViewById
(
R
.
id
.
send_sms_button
)
;
send_sms_button
.
setOnClickListener
(
new
OnClickListener
(
)
{
@
Override
public
void
onClick
(
View
arg0
)
{
String
phone_number
=
phone_number_editText
.
getText
(
)
.
toString
(
)
.
trim
(
)
;
String
sms_content
=
sms_content_editText
.
getText
(
)
.
toString
(
)
.
trim
(
)
;
if
(
phone_number
.
equals
(
""
)
)
{
Toast
.
makeText
(
MainActivity
.
this
,
R
.
string
.
str_remind_input_phone_number
,
Toast
.
LENGTH_LONG
)
.
show
(
)
;
}
else
{
SmsManager smsManager
=
SmsManager
.
getDefault
(
)
;
if
(
sms_content
.
length
(
)
>
70
)
{
List
<
String
>
contents
=
smsManager
.
divideMessage
(
sms_content
)
;
for
(
String
sms
:
contents
)
{
smsManager
.
sendTextMessage
(
phone_number
,
null
,
sms
,
null
,
null
)
;
}
}
else
{
smsManager
.
sendTextMessage
(
phone_number
,
null
,
sms_content
,
null
,
null
)
;
}
Toast
.
makeText
(
MainActivity
.
this
,
R
.
string
.
str_remind_sms_send_finish
,
Toast
.
LENGTH_SHORT
)
.
show
(
)
;
}
}
}
)
;
}
private
EditText phone_number_editText
;
private
EditText sms_content_editText
;
private
Button
send_sms_button
;
}
在功能清单文件中声明发短信权限:
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2