下文中的{1}quot;; 原文是$";被这里的博客给转了。。。copy代码的伴侣要留意替换一下/*查抄字符串是否为电话号码的要领,并返回true or false的判定值*/
public static boolean isPhoneNumberValid(String phoneNumber)
{
boolean isValid = false;
/* 可接管的电话名目有:
* ^\\(? : 可以利用 "(" 作为开头
* (\\d{3}): 紧接着三个数字
* \\)? : 可以利用")"接续
* [- ]? : 在上述名目后可以利用具选择性的 "-".
* (\\d{4}) : 再紧接着三个数字
* [- ]? : 可以利用具选择性的 "-" 接续.
* (\\d{4})$: 以四个数字竣事.
* 可以较量下列数字名目:
* (123)456-78900, 123-4560-7890, 12345678900, (123)-4560-7890
*/
String expression = "^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{5}){1}quot;;
String expression2 ="^\\(?(\\d{3})\\)?[- ]?(\\d{4})[- ]?(\\d{4}){1}quot;;
CharSequence inputStr = phoneNumber;
/*建设Pattern*/
Pattern pattern = Pattern.compile(expression);
/*将Pattern 以参数传入Matcher作Regular expression*/
Matcher matcher = pattern.matcher(inputStr);
/*建设Pattern2*/
Pattern pattern2 =Pattern.compile(expression2);
/*将Pattern2 以参数传入Matcher2作Regular expression*/
Matcher matcher2= pattern2.matcher(inputStr);
if(matcher.matches()||matcher2.matches())
{
isValid = true;
}
return isValid;
}
需要引入
import java.util.regex.Matcher;
import java.util.regex.Pattern;
下面是拨打电话的code,这里涉及到上文所提到的intent机制,别的一点就是把握Toast(信息提示)的利用语法
/*配置Button工具的OnClickListener来凝听OnClick事件*/
mButton1.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
try
{
/*取得EditText顶用户输入的字符串*/
String strInput = mEditText1.getText().toString();
if (isPhoneNumberValid(strInput)==true)
{
/*建构一个新的Intent
运行action.CALL的常数与通过Uri将字符串带入*/
Intent myIntentDial = new
Intent
(
"
android.intent.action.CALL",
Uri.parse("tel:"+strInput)
);
/*在startActivity()要领中
带入自界说的Intent工具以运行拨打电话的事情 */
startActivity(myIntentDial);
mEditText1.setText("");
}
else
{
mEditText1.setText("");
Toast.makeText(
EX05_02.this, "输入的电话名目不符",
Toast.LENGTH_LONG).show();
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
});
发短信的code 需要引入
import
android.telephony.gsm.SmsManager;
import android.app.PendingIntent;//引入它才气举办 getBrocast()
/*建构一取得default instance的 SmsManager工具 */
SmsManager smsManager = SmsManager.getDefault();
// TODO Auto-generated method stub
/*查抄收件人电话名目与短信字数是否高出70字符*/
if(isPhoneNumberValid(strDestAddress)==true &&
iswithin70(strMessage)==true)
{
try
{
/*
* 两个条件都查抄通过的环境下,发送短信
* 先建构一PendingIntent工具并利用getBroadcast()广播
* 将PendingIntent,电话,短信文字等参数
* 传入sendTextMessage()要领发送短信
*/
PendingIntent mPI = PendingIntent.getBroadcast
(EX05_03.this, 0, new Intent(), 0);
smsManager.sendTextMessage
(strDestAddress, null, strMessage, mPI, null);
}
catch(Exception e)
{
e.printStackTrace();
}
Toast.makeText
(
EX05_03.this,"送出乐成!!" ,
Toast.LENGTH_SHORT
).show();
mEditText1.setText("");
mEditText2.setText("");
}
发email的code 需要引入
import android.content.Intent;
mButton01.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
/*自界说一Intent来运行寄送E-mail的事情*/
Intent mEmailIntent = new Intent(android.content.Intent.ACTION_SEND);
/*配置邮件名目为"plain/text"*/
mEmailIntent.setType("plain/text");
/** 取得EditText01,02,03,04的值作为
* 收件人地点,附件,主题,正文
*/
strEmailReciver = new String[]{mEditText01.getText().toString()};
strEmailCc = new String[]{mEditText02.getText().toString()};
strEmailSubject = mEditText03.getText().toString();
strEmailBody = mEditText04.getText().toString();
/*将取得的字符串放入mEmailIntent中*/
mEmailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, strEmailReciver);
mEmailIntent.putExtra(android.content.Intent.EXTRA_CC, strEmailCc);
mEmailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, strEmailSubject);
mEmailIntent.putExtra(android.content.Intent.EXTRA_TEXT, strEmailBody);
startActivity(Intent.createChooser(mEmailIntent, getResources().getString(R.string.str_message)));
}
});
正则验证email地点
String strPattern = "^[a-zA-Z][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]{1}quot;;
Pattern p = Pattern.compile(strPattern);
Matcher m = p.matcher(strEmail);
return m.matches();