Android平台打电话、发短信、发Email

1.打电话:要注意两个方面,一个是要在AndroidManifest中添加uses-permission,并声明android:name="Android.permission.CALL_PHONE"。其次通过自定义Intent对象,带入"ACTION_CALL"这个关键值,以及通过Uri.parse()的方法将用户输入的电话号码带入,最后以startActivity()方法将自定义的Intent传入。如果想使用虚拟键盘来拨打电话,只需要在自定义Intent时将Action.CALL改为Action.DIAL即可。

 Intent intent=new Intent("android.intent.action.CALL",Uri.parse("tel:"+telephoneId));//自定义的Intent

 startActivity(intent);

 我们在这里还可以检查一下输入电话号码的格式是否正确:用Pattern和Matcher类:

 Pattern pattern=Pattern.compile(expression);

 Matcher matcher=pattern.matcher(telephoneId);

 matcher.matchers()//判断是否匹配

2.发短信:发送短信是GSM移动通信系统的服务中常用功能之一。发送短信的关键程序是通过SmsManager对象的sendTextmessage方法来完成,其中sendTextMessage()方法需要传入五个值,依次是收件人地址String,发送地址String,正文String,发送服务PendingIntent与送达服务PendingIntent,并且注意收件人与正文是不可为NUll的两个参数。

 SmsManager smsmanager=SmsManager.getDefault();处理SMS短信相关的活动,例如发送数据、文字、与pduSMS信息,需要调用这一静态的方法。

 PendingIntent mpI=PendingIntent.getBroadcast(***.this,0,new Intent,0);构建PendingIntent对象。

 smsManager.sendTextMessage(destaddress,null,message,mpI,null);//发送短信

注意的是要添加用户发送短信的权限,android:name="android.permission.SEND_SMS"

3.发送Email—Intent在Email上的使用:构造一个自定义的Intent(Android.content.Intent.ACTION_SEND),作为传送Email的Activity之用,在该Intent中,还必须使用settype()来决定email的格式,使用putExtra()来直入寄件人(EXTRA_EMAIL)、主题(EXTRA_SUBJECT)、邮件内容(EXTRA_TEXT)、以及其他Email的字段(EXTRA_CC,EXTRA_BCC)。

相关代码如下:Intent emailIntent=new Intent(android.content.Intent.ACTION_SEND);//通过Intent来发送邮件

                   emailIntent.setType("plain/text");//设置邮件格式为plain/text

                   /*将收件人地址、附件、主旨、正文放入emailIntent中*/

                   emailIntent.putExtra(android..content.Intent.EXTRA_EMAIL,strEmailReciver);

                   emailIntent.putExtra(android..content.Intent.EXTRA_CC,stremailCc);

                   emailIntent.putExtra(android..content.Intent.EXTRA_SUBJECT,strEmailSubject);

                   emailIntent.putExtra(android..content.Intent.EXTRA_TEXT,strEmailBody);

                  /*打开Gmail并将相关参数传入*/

                 /*Gmail程序是收发Email的程序,是Android手机内置的*/

                   startActivity(Intent.createChooser(emialIntent,getResources().getString(R.string.str_message)));

 以上知识发送Email的一种,在android中还有许多发送Email的写法。方法一:

        Uri uri=Uri.parse(mailto:***@gmail.com);

        Intent emailIntent=new Intent(Intent.ACTION_SENDTO,uri);

        startActivity(emailIntent);

  方法二: Intent emailIntent=new Intent(Intent.ACTION_SEND);

               emailIntent.putExtra(Intent.EXTRA_EMAIL,"me@abc.com")

               emailIntent.putExtra(Intent.EXTRA_CC,you@abc.com);

               emialIntent.putExtra(Intent.EXTRA_TEXT,"the email body text");

               emailIntent.putExtra(Intent.EXTRA_SUBJECT,"the email subject text");

               emailIntent.setType("message/rfc822");

               startActivity(Intent.createChooser(emailIntent,"your client"));

我们往往发邮件希望传送附有文件的email.此时在自定义的Intent的setType事件上,以"plain/text"作为传入的参数,就不可行了,代码参考如下:

  Intent intent=new Intent(Intent.ACTION_SEND);

  intent.putExtra(Intent.EXTRA-SUBJECT,"邮件标题");

  intent.putExtra(Intent.EXTRA_STREAM,file:///sdcard/foo.mp3);

  intent.setType("audio/mp3");

  startActivity(Intent.createChooser(intent,"your client"));

posted on 2012-07-03 18:04  ssy黑桃a  阅读(5117)  评论(1编辑  收藏  举报