`
daibalusu
  • 浏览: 344230 次
文章分类
社区版块
存档分类
最新评论

Android最简单的打电话、发短信、发邮件服务

 
阅读更多

一、拨打电话:

实现一个直接拨号程序很简单:

1、 得到一个Intent,并且设置它的actionIntent.CALLUri为“tel:”开头

实际上,Intent.Call为一个字符串,为android.permission.CALL_PHONE

2、 声明权限:<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>

3、 为了方便,可以将TextView中的isPhoneUmber属性设置为true,这样TextView中只能输入数字了。

4、如果不是直接拨号,而是转到虚拟键盘拨号处,则

(1) 将action行为,即Intentl.CALL改成Intent.Dial

(2)可以不声明权限

clip_image002

Uri uri = Uri.parse("tel:" + phone);

Intent intent = new Intent(Intent.ACTION_DIAL, uri);

startActivity(intent);

二、发送短信

发送短信也很简单:

1、得到SmsMessager类(其getDefault()方法),再调用smsManager.sendTextMessage()方法就可以了;

2、一条短信内容content为70个字符,所以若超过70个字符需要用smsManager.divideMessage()来讲短信切割,然后发送多条消息;

3、权限:<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>

clip_image002

界面在droidDraw里做的,比较少见的属性有:

android:layout_gravity

android:hint

android:gravity

android:phoneNumber

发送短信的主程序。

public void onClick(View v) {

SmsManager smsManager = SmsManager.getDefault();

ArrayList<string> messages = smsManager.divideMessage(content);</string>

for (String message : messages) {

PendingIntent mpi = PendingIntent.getBroadcast(SMSActivity.this, 0, new Intent(), 0);

// 接受45个分别为:发送服务和送达服务,传入PendingIntent对象,因为对方接受到短信时,此边便会发出广播

smsManager.sendTextMessage(destAddress, null, message, mpi,null);

}

三、发送邮件

1、 得到一个Intent,并且它的actionIntent.CALL,且typeplain/text(这只能发文本邮件);

2、 将发件人、内容等各个字段放入bundle

3、 权限<uses-permission android:name="android.intent.action.SEND"></uses-permission>

Intent intent = new Intent(Intent.ACTION_SEND);

intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"xxx@163.com"});

intent.putExtra(Intent.EXTRA_CC, new String[] {"xxx@qq.com"});

intent.putExtra(Intent.EXTRA_SUBJECT, "主题");

intent.putExtra(Intent.EXTRA_TEXT, "生命不会欺骗你!");

intent.setType("plain/text");

startActivity(Intent.createChooser(intent, "发信中..."));

点击后,出现以下界面,不会直接发送,因为没有配置SMTP,使用了内置的Gmail程序。

clip_image001

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics