java:
package EX05_03.txt;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.gsm.SmsManager;
import android.telephony.gsm.SmsMessage;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class EX05_03 extends Activity {
private EditText mEditText1;
private EditText mEditText2;
private Button mButton;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
initApp();
}
private void initApp() {
// TODO Auto-generated method stub
mEditText1 = (EditText)findViewById(R.id.EditText01);
mEditText2 = (EditText)findViewById(R.id.EditText02);
mButton = (Button)findViewById(R.id.Button01);
mEditText1.setOnClickListener(new EditText.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mEditText1.setText("");
}
});
mEditText2.setOnClickListener(new EditText.OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mEditText2.setText("");
}
});
mButton.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String phoneNum = mEditText1.getText().toString();
String smsContent = mEditText2.getText().toString();
if (isPhoneNumber(phoneNum)
& isLess70(smsContent)) {
try {
SmsManager smsManager = SmsManager.getDefault();
PendingIntent sentIntent = PendingIntent.getBroadcast(
EX05_03.this, 0,
new Intent(), 0);
smsManager.sendTextMessage(phoneNum, null,
smsContent, sentIntent, null);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
Toast.makeText(EX05_03.this, "信息发送成功!",
Toast.LENGTH_SHORT).show();
mEditText1.setText("");
mEditText2.setText("");
}
else {
if (isPhoneNumber(phoneNum) == false) {
Toast.makeText(EX05_03.this, "手机号码格式错误!",
Toast.LENGTH_SHORT).show();
}
if (isLess70(smsContent) == false) {
Toast.makeText(EX05_03.this, "短信内容超过70个字!",
Toast.LENGTH_SHORT).show();
}
}
}
});
}
private boolean isLess70(String smsContent) {
// TODO Auto-generated method stub
boolean isValid = false;
if (smsContent.length() <= 70) {
isValid = true;
}
return isValid;
}
private boolean isPhoneNumber(String phoneNumber) {
// TODO Auto-generated method stub
boolean isValid = false;
String expression1 = "^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{5})$";
String expression2 = "^\\(?(\\d{3})\\)?[- ]?(\\d{4})[- ]?(\\d{4})$";
CharSequence strInput = phoneNumber;
Pattern pattern1 = Pattern.compile(expression1);
Matcher matcher1 = pattern1.matcher(strInput);
Pattern pattern2 = Pattern.compile(expression2);
Matcher matcher2 = pattern2.matcher(strInput);
if (matcher1.matches() | matcher2.matches() | strInput.equals("5556")) {
isValid = true;
}
return isValid;
}
}
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"
>
<EditText
android:text="请输入电话号码!"
android:id="@+id/EditText01"
android:layout_width="200dip"
android:layout_height="wrap_content">
</EditText>
<EditText
android:text="请输入短信内容!!"
android:gravity = "top"
android:id="@+id/EditText02"
android:layout_width="fill_parent"
android:layout_height="300dip">
</EditText>
<Button
android:text="发送短信"
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</LinearLayout>