<uses-permission android:name="android.permission.SEND_SMS" />
manifest.xml中要加的权限如上。
colors.xml中加:
<color name="white">#FFFFFF</color>
main.xml
<?xml version="1.0" encoding="utf-8"?><!-- XML的版本以及编码方式 -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/white"
android:gravity="bottom"><!-- 添加一个垂直的线性布局 -->
<TextView
android:text="@string/tel"
android:id="@+id/TextView02"
android:textSize="20dip"
android:textStyle="bold"
android:textColor="@color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="5dip"/><!-- 添加一个TextView控件 -->
<EditText
android:text="@string/telno"
android:id="@+id/EditText02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/><!-- 添加一个EditText控件 -->
<TextView
android:text="@string/sms"
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:textSize="20dip"
android:textStyle="bold"
android:textColor="@color/black"
android:paddingLeft="5dip"
android:layout_height="wrap_content"/><!-- 添加一个TextView控件 -->
<EditText
android:text="@string/smsnr"
android:id="@+id/EditText01"
android:layout_width="fill_parent"
android:singleLine="false"
android:gravity="top|left"
android:layout_height="100dip"/><!-- 添加一个EditText控件 -->
<Button
android:text="@string/dial"
android:id="@+id/Button01"
android:textSize="20dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/><!-- 添加一个Button控件 -->
</LinearLayout>
MainActivity.java
package com.example.MainActivity;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.PhoneNumberUtils;
import android.telephony.gsm.SmsManager;
import android.view.View;
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);
Button bdial=(Button)this.findViewById(R.id.Button01);
bdial.setOnClickListener(// 为发送按钮添加监听器
//OnClickListener为View的内部接口,其实现者负责监听鼠标点击事件
new View.OnClickListener(){
public void onClick(View v){
//获取输入的电话号码
EditText etTel=(EditText)findViewById(R.id.EditText02);
String telStr=etTel.getText().toString();
//获取输入的短信内容
EditText etSms=(EditText)findViewById(R.id.EditText01);
String smsStr=etSms.getText().toString();
//判断号码字符串是否合法
if(PhoneNumberUtils.isGlobalPhoneNumber(telStr)){//合法则发送短信
v.setEnabled(false);//短信发送完成前将发送按钮设置为不可用
sendSMS(telStr,smsStr,v);
}
else{//不合法则提示
Toast.makeText(
Sample_11_1.this, //上下文
"电话号码不符合格式!!!", //提示内容
5000 //信息显示时间
).show();
}
}
});
}
//自己开发的直接发送短信的方法
private void sendSMS(String telNo,String smsStr,View v){
PendingIntent pi=
PendingIntent.getActivity(this, 0, new Intent(this,Sample_11_1.class), 0);
SmsManager sms=SmsManager.getDefault();
sms.sendTextMessage(telNo, null, smsStr, pi, null);
//短信发送成功给予提示
Toast.makeText(
Sample_11_1.this, //上下文
"恭喜你,短信发送成功!", //提示内容
5000 //信息显示时间
).show();
v.setEnabled(true);//短信发送完成后恢复发送按钮的可用状态
}
}
查询发送状态:
public class MyBroadcastReceiver extends BroadcastReceiver{//自定义的BroadcastReceiver
@Override
public void onReceive(Context context, Intent intent) {//重写的onReceive方法
switch(getResultCode()){
case Activity.RESULT_OK://发送成功
Toast.makeText(context, "发送成功", Toast.LENGTH_LONG).show();//提示
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE://发送失败
Toast.makeText(context, "发送失败", Toast.LENGTH_LONG).show();//提示
break;
default://其他情况
Toast.makeText(context, "未知", Toast.LENGTH_LONG).show();//提示
break;
}
}
}