打电话,发送信息

本文介绍如何在Android应用中实现拨打电话和发送短信的功能。通过Intent启动拨号界面,利用正则表达式验证电话号码格式,并通过SmsManager发送短信。需配置CALL_PHONE和SEND_SMS权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值