一、拨打电话:
实现一个直接拨号程序很简单:
1、 得到一个Intent,并且设置它的action为Intent.CALL,Uri为“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)可以不声明权限
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>
界面在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);
// 接受4、5个分别为:发送服务和送达服务,传入PendingIntent对象,因为对方接受到短信时,此边便会发出广播
smsManager.sendTextMessage(destAddress, null, message, mpi,null);
}
三、发送邮件
1、 得到一个Intent,并且它的action为Intent.CALL,且type为plain/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程序。