android - Android Intent(或代码)在(outlook,gmail)中打开电子邮件编辑器
问题描述
我想知道如何在 gmail 或 Outlook 中打开撰写电子邮件的活动。到目前为止,我只知道要重定向到例如 gmail,但我也会打开“composer”(或其他)并添加一个电子邮件地址。我已经尝试过:
intent.putExtra(Intent.EXTRA_EMAIL , new String[]{"recipient@example.com"});
但不起作用
测试应用程序的完整源代码
public class MainActivity extends AppCompatActivity {
private static final String GOOGLE_MAIL = "com.google.android.gm";
private static final String OUTLOOK = "com.microsoft.office.outlook";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
test(GOOGLE_MAIL);
}
private void test(String mail) {
Intent intent = getPackageManager().getLaunchIntentForPackage(mail);
intent.putExtra(Intent.EXTRA_EMAIL , new String[]{"recipient@example.com"});
startActivity(intent);
}
}
解决方案
你可以试试这个:
protected void sendEmail() {
Log.i("Send email", "");
String[] TO = {"someone@gmail.com"};
String[] CC = {"xyz@gmail.com"};
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.setType("text/plain");
emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);
emailIntent.putExtra(Intent.EXTRA_CC, CC);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Your subject");
emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message goes here");
try {
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
finish();
Log.i("Finished sending email...", "");
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(MainActivity.this,
"There is no email client installed.", Toast.LENGTH_SHORT).show();
}
}
推荐阅读
- vuejs2 - Unit-testing VueJS component doesn't seem to register click() invocation
- python - 在其他函数中使用全局变量不起作用
- swift - Using SwiftNIO and SwiftNIOHTTP2 as an HTTP2 client
- javascript - Connect express with react application
- python - GCP:在哪里安排写入 BigQuery 的 PubSub 订阅者
- ruby-on-rails - 具有货币字段类型的 Searchkick 和 PostgreSQL
- android - MongoDB Mobile 是否构建在 SQLite 之上?
- r - 在 R 中使用聚合函数过滤特定值
- python - PyTorch - 将张量与标量相乘得到零向量
- azure - 订阅 Azure IoT 中心设备事件