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);
上述代码大部分未经测试。
参考转载来源: