Android调用系统功能

电话

拨打界面:

Intent intent = new Intent();
intent.setAction("android.intent.action.DIAL");
intent.setData(Uri.parse("tel:"+"电话号码"));
startActivity(intent);

 

直接拨出:

需要权限:android.permission.CALL_PHONE

Uri uri = Uri.parse("tel:" + "电话号码");
Intent intent = new Intent(Intent.ACTION_CALL, uri);
startActivity(intent);

 


 

短信

发送界面:

Uri uri = Uri.parse("smsto:" + "电话号码");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body", "短信内容");
startActivity(intent);

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.putExtra("address", "电话号码");
intent.putExtra(
"sms_body", "短信内容");
intent.setType(
"vnd.android-dir/mms-sms");
startActivity(intent);

 

直接发送:

需要权限:android.permission.SEND_SMS

SmsManager smsManager = SmsManager.getDefault();
// 拆分短信内容
List<String> divideContents = smsManager.divideMessage("完整短信信息");
// 分批发送
for (String text : divideContents) {  
    smsManager.sendTextMessage("电话号码", null, text, sentPI, deliverPI);  
}

// 处理返回的发送状态
String SENT_SMS_ACTION = "SENT_SMS_ACTION";
Intent sentIntent = new Intent(SENT_SMS_ACTION);
PendingIntent sentPI = PendingIntent.getBroadcast(context, 0, sentIntent,
        0);
// register the Broadcast Receivers
context.registerReceiver(new BroadcastReceiver() {
    @Override
    public void onReceive(Context _context, Intent _intent) {
        switch (getResultCode()) {
        case Activity.RESULT_OK:
            Toast.makeText(context,
        "短信发送成功", Toast.LENGTH_SHORT)
        .show();
        break;
        case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
        break;
        case SmsManager.RESULT_ERROR_RADIO_OFF:
        break;
        case SmsManager.RESULT_ERROR_NULL_PDU:
        break;
        }
    }
}, new IntentFilter(SENT_SMS_ACTION));

// 处理返回的接收状态
String DELIVERED_SMS_ACTION = "DELIVERED_SMS_ACTION";
// create the deilverIntent parameter
Intent deliverIntent = new Intent(DELIVERED_SMS_ACTION);
PendingIntent deliverPI = PendingIntent.getBroadcast(context, 0,
       deliverIntent, 0);
context.registerReceiver(new BroadcastReceiver() {
   @Override
   public void onReceive(Context _context, Intent _intent) {
       Toast.makeText(context,
  "收信人已经成功接收", Toast.LENGTH_SHORT)
  .show();
   }
}, new IntentFilter(DELIVERED_SMS_ACTION));

发送短信的参数说明

smsManager.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliverIntent)

-- destinationAddress:目标电话号码 
-- scAddress:短信中心号码,可以不填 
-- text: 短信内容 
-- sentIntent:发送 -->中国移动 --> 中国移动发送失败 --> 返回发送成功或失败信号 --> 后续处理   即,这个意图包装了短信发送状态的信息 
-- deliverIntent: 发送 -->中国移动 --> 中国移动发送成功 --> 返回对方是否收到这个信息 --> 后续处理  即:这个意图包装了短信是否被对方收到的状态信息(供应商已经发送成功,但是对方没有收到)。 

 


 

邮件

Intent emailIntent = new Intent(Intent.ACTION_SEND);
// 文本格式
emailIntent.setType("text/plain");
// 对方邮件地址
emailIntent.putExtra(Intent.EXTRA_EMAIL, "对方邮件地址");
// 标题内容
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "标题内容");
// 邮件文本内容
emailIntent.putExtra(Intent.EXTRA_TEXT, "邮件文本内容");
// 邮件发送客户端选择器
startActivity(Intent.createChooser(emailIntent, "Choose Email Client"));

 


 

联系人

添加联系人:

Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
intent.putExtra("name", "姓名");
intent.putExtra("phone", "电话号码");
context.startActivity(intent);

 

添加或编辑联系人:

Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT);
intent.setType("vnd.android.cursor.item/contact");
intent.putExtra(Intents.Insert.PHONE, "电话号码");
context.startActivity(intent);

 

上述代码大部分未经测试。

参考转载来源:

http://blog.csdn.net/djcken/article/details/7779499

http://ziyu-1.iteye.com/blog/1013932

posted @ 2014-06-23 10:43  wavky  阅读(351)  评论(0编辑  收藏  举报