`
zhangle2612
  • 浏览: 23431 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

打电话,发送信息

阅读更多
1.根据EditText输入电话号码,然后直接拨打
String strInput = mEditText.getText().toString();
Intent myIntentDial =
  new Intent("android.intent.action.CALL",Uri.parse("tel:"+strInput));
startActivity(myIntentDial);
通过上面的设置就可以实现拨打电话的功能,一般情况下我们要对用户输入的strInput是否满足电话格式进行判断,常用判断方法是对EditText加一个参数android:phoneNumber=true的设置,如果满足,则拨打电话,如果不满足,则用一个toast告诉用户输入不规则,并令EditText为空。
判断是否为合格电话号码的方法为 传入得到的strInput,得到返回的Boolean值:
private Boolean isPhoneNumberValid(String phoneNumber){

     boolean  isValid = false;
     String expression1 = "^\\(?(\\d{3})\\)?[-]?(\\d{4})[-]?(\\d{4)$"
     String expressino2 = "^\\(?(\\d{3})\\)?[-]?(\\d{3))[-]?(\\d{5)$"
     //满足上述两种表达式的会标准的电话号码

      Pattern pattern1 = Pattern.compile(expression1);
     Matcher matcher1 = pattern1.matcher(phoneNumber);
     Pattern pattern2 = Pattern.compile(expression2);
     Matcher matcher2 = pattern2.matcher(phoneNumber);
    
     if(matcher1.matches()||matcher2.matches()){
            isValid = true;
     }
     return isValid;
}

还要加上拨打电话的peimission,
<uses-permissino android:name="android.permission.CALL_PHONE"/>


发短信

SmsManager smsManager = SmsManager.getDefault();
PendingIntent mPi = PendingIntent.getBroadcast(context,null,
              new Intent(),null);
smsManager.sendTextMessage(strAddress,null,strMessage,mPi,null);
发送短信是通过SmsManager对象的sendTextMEssage()方法来完成,其中需要传递五个参数,依次为收件人地址,发送地址,正文,发送服务,送达服务,其中收件人地址和正文是不可为null的两个值
上述用到的PendingIntent具有下列特性:当接收到PendingIntent对象时,会进行broadcast的动作,就如同使用Context.sendBroadcast()方法一样,这也就是在SmsManager.sendTextMessage()方法中需要传入PendingIntent作为传送服务的参数之一的原因
SmsManager还有其他两种传送短信的方法,参照SmsManager的源码进行学习

最后是加上permission
<uses-permission android:name="android.permission.SEND_SMS"/>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics