从0开始认识android(八):发送邮件、短信和拨打电话的Intent

1、发送邮件

public void composeEmail(String[] mainAddresses,String[] copyAddresses, String[] secretAddresses,
                             String subject,String text, Uri attachment) {
        Intent intent = new Intent(Intent.ACTION_SENDTO);
        //加入mailto:限制了只有邮件应用能响应这个intent,其他软件如短信、社交应用等都不能响应
        intent.setData(Uri.parse("mailto:"));
        //所有“主送”收件人电子邮件地址的字符串数组。
        intent.putExtra(Intent.EXTRA_EMAIL, mainAddresses);
        //所有“抄送”收件人电子邮件地址的字符串数组。
        intent.putExtra(Intent.EXTRA_CC, copyAddresses);
        //所有“密件抄送”收件人电子邮件地址的字符串数组
        intent.putExtra(Intent.EXTRA_BCC, secretAddresses);
        //邮件主题
        intent.putExtra(Intent.EXTRA_SUBJECT, subject);
        //邮件正文
        intent.putExtra(Intent.EXTRA_TEXT, text);
        //附件的 Uri。如果使用的是 ACTION_SEND_MULTIPLE 操作,应将其改为包含多个 Uri 对象的 ArrayList。
        intent.putExtra(Intent.EXTRA_STREAM, attachment);
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivity(intent);
        }
    }

2、发送短信
必要的权限
< uses-permission android:name=”android.permission.SEND_SMS”/>

public void composeMmsMessage(String phone, String message,String subject, Uri attachment) {
        Intent intent = new Intent(Intent.ACTION_SENDTO);
        //加smsto确保只能由短信应用发送,不能用其他软件发送
        intent.setData(Uri.parse("smsto:"+phone));
        //消息正文
        intent.putExtra("sms_body", message);
        //消息主题(通常只适用于彩信)。
        intent.putExtra("subject", subject);
        //图像或视频的 Uri。 如果使用的是 ACTION_SEND_MULTIPLE 操作,
        // 此 extra 应为指向要附加的图像/视频的 Uri ArrayList。
        intent.putExtra(Intent.EXTRA_STREAM, attachment);
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivity(intent);
        }
    }

3、拨打电话
必要的权限
< uses-permission android:name=”android.permission.CALL_PHONE”/>

public void dialPhoneNumber(String phoneNumber) {
        //Intent.ACTION_DIAL只是打开拨号器
//        Intent intent = new Intent(Intent.ACTION_DIAL);
        //Intent.ACTION_CALL直接拨打电话,需要打电话权限
        Intent intent = new Intent(Intent.ACTION_CALL);
        intent.setData(Uri.parse("tel:" + phoneNumber));
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivity(intent);
        }
    }

猜你喜欢

转载自blog.csdn.net/jack_bear_csdn/article/details/80433549