Android 使用特定的发件人邮件启动gmail
我正在开发一个应用程序来处理与大学生学术生活有关的任何事情,包括他的大学邮件帐户 假设安装我的应用程序的手机有两个或多个不同的gmail帐户设置:Android 使用特定的发件人邮件启动gmail,android,email,gmail,inbox,Android,Email,Gmail,Inbox,我正在开发一个应用程序来处理与大学生学术生活有关的任何事情,包括他的大学邮件帐户 假设安装我的应用程序的手机有两个或多个不同的gmail帐户设置: -“账户1”-”abcdef@gmail.com“ -“账户2”-”123456@mydomain.com" 我知道要启动gmail应用程序,我可以使用以下代码: public void showMailBox(View view){ Intent sendIntent = new Intent(Intent.ACTION_VIEW);
-“账户1”-”abcdef@gmail.com“
-“账户2”-”123456@mydomain.com"
我知道要启动gmail应用程序,我可以使用以下代码:
public void showMailBox(View view){
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setType("plain/text");
sendIntent.setData(Uri.parse("test@gmail.com"));
sendIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "test@gmail.com" });
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "test");
sendIntent.putExtra(Intent.EXTRA_TEXT, "hello");
startActivity(sendIntent);
}
如何设置启动Gmail或收件箱的意图,并将第二个帐户设置为发件人?要访问Android手机中的注册帐户,必须向清单文件添加
Android.permission.GET_accounts
权限。此权限允许访问帐户服务中的帐户列表
<uses-permission android:name=”android.permission.GET_ACCOUNTS” />
使用以下方法获取手机中的帐户列表(谷歌帐户ID)
public ArrayList<String> getData() {
ArrayList<String> accountsall = new ArrayList<String>();
try {
Account[] accounts = AccountManager.get(this).getAccountsByType("com.google");
for (Account account : accounts) {
accountsall.add(account.name);
}
} catch (Exception e) {
Log.i("Exception", "Exception:" + e);
}
return accountsall;
}
public ArrayList getData(){
ArrayList accountsall=新的ArrayList();
试一试{
Account[]accounts=AccountManager.get(this.getAccountsByType(“com.google”);
用于(账户:账户){
accountsall.add(account.name);
}
}捕获(例外e){
Log.i(“异常”,“异常:+e”);
}
返回帐户sall;
}
从代码中的方法返回的列表中获取帐户,验证您在何处需要哪个帐户。例如,我将第一个找到的帐户设置为mail id,第二个找到的帐户设置为from mail id。只需尝试打印列表,以查找哪个帐户位于哪个位置,然后在代码中查找引用
public void showMailBox(View view){
ArrayList<String> mails=getData();
Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.setType("plain/text");
sendIntent.setData(Uri.parse(mails.get(0)));
sendIntent.setClassName("com.google.android.gm", "com.google.android.gm.ComposeActivityGmail");
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { mails.get(1) });
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "test");
sendIntent.putExtra(Intent.EXTRA_TEXT, "hello");
startActivity(sendIntent);
}
public void显示邮箱(视图){
ArrayList mails=getData();
Intent sendIntent=新的Intent(Intent.ACTION\u视图);
sendIntent.setType(“纯/文本”);
setData(Uri.parse(mails.get(0));
sendIntent.setClassName(“com.google.android.gm”、“com.google.android.gm.ComposeActivityMail”);
sendIntent.putExtra(Intent.EXTRA_EMAIL,新字符串[]{mails.get(1)});
sendIntent.putExtra(Intent.EXTRA_受试者,“测试”);
sendIntent.putExtra(Intent.EXTRA_文本,“hello”);
星触觉(sendIntent);
}
“我知道要启动gmail应用程序,我可以使用此代码”——仅适用于某些版本的gmail应用程序。一旦他们重构代码,你的代码就会崩溃。另外,plain/text
不是MIME类型。除此之外,Gmail没有记录或支持的设备API来操作他们的应用程序。