Android发送短信以及邮件的方式总结(尚不完整,稍后更新)

发送短信:


想要发送和接收短信,首先要在AndroidManifest.xml里面配置以下权限:

<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />

方法一:调用系统短信界面发送短信


1.不指定收件人,但是指定短信内容。

要想调用系统发送短信界面后附加短信内容,只需在Intent中附带相关的参数就可以了。


        Uri smsToUri = Uri.parse("smsto:");

        Intent intent = new Intent(Intent.ACTION_SENDTO, smsToUri);

        //smsBody :短信内容
        intent.putExtra("sms_body", smsBody);

        startActivity(intent);




2.指定收件人,但不指定短信内容。

        //phone :收件人
        Uri smsToUri = Uri.parse("smsto:"+phone);

        Intent intent = new Intent(Intent.ACTION_SENDTO, smsToUri);

        startActivity(intent);



或者:

    Intent sendIntent = new Intent(Intent.ACTION_SENDTO);  

    sendIntent.setData(Uri.parse("smsto:" + number)); 

    startActivity(sendIntent)

3.同时指定收件人和短信内容。

//number :收件人
Uri smsToUri = Uri.parse("smsto:" + number);  
Intent intent = new Intent(Intent.ACTION_SENDTO, smsToUri);  
  
//smsBody :短信内容
intent.putExtra("sms_body", smsBody);  
  
startActivity(intent); 

或者

Intent sendIntent = new Intent(Intent.ACTION_SENDTO);  

sendIntent.setData(Uri.parse("smsto:" + number));  

sendIntent.putExtra("sms_body", body);  

startActivity(sendIntent);

方法二:不调用系统短信界面直接发短信。

SmsManager smsMgr = SmsManager.getDefault();

smsMgr.sendTextMessage(address, null, message, null, null);

其中参数说明:

sendTextMessage (String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent)

      destinationAddress      发送短信的地址(也就是号码)
      scAddress               短信服务中心,如果为null,就是用当前默认的短信服务中心
      text                    短信内容
      sentIntent              如果不为null,当短信发送成功或者失败时,这个PendingIntent会被广播出去
                              成功的结果代码是Activity.RESULT_OK,
                              或者下面这些错误之一  :RESULT_ERROR_GENERIC_FAILURE,RESULT_ERROR_RADIO_OFF,RESULT_ERROR_NULL_PDU等 
                                   通俗点说: 发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号
                                   --> 后续处理   即,这个意图包装了短信发送状态的信息                           
      deliveryIntent          如果不为null,当这个短信发送到接收者那里,这个PendtingIntent会被广播    
                              状态报告生成的pdu(指对等层次之间传递的数据单位)会拓展到数据("pdu")
                                   通俗点就是:发送 -->中国电信 --> 中国电信发送成功 --> 返回对方是否收到这个信息 --> 后续处理  
                                   即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。


发送邮件:

1.
Uri uri = Uri.parse("mailto:xxx@abc.com");   
Intent it = new Intent(Intent.ACTION_SENDTO, uri);   
startActivity(it);  

2.
Intent it = new Intent(Intent.ACTION_SEND);   
it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");   
it.putExtra(Intent.EXTRA_TEXT, "The email body text");   
it.setType("text/plain");   
startActivity(Intent.createChooser(it, "Choose Email Client"));

3.
Intent it=new Intent(Intent.ACTION_SEND);       
String[] tos={"me@abc.com"};       
String[] ccs={"you@abc.com"};       
it.putExtra(Intent.EXTRA_EMAIL, tos);       
it.putExtra(Intent.EXTRA_CC, ccs);       
it.putExtra(Intent.EXTRA_TEXT, "The email body text");       
it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");       
it.setType("message/rfc822");       
startActivity(Intent.createChooser(it, "Choose Email Client"));  








































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值