Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用特定的发件人邮件启动gmail_Android_Email_Gmail_Inbox - Fatal编程技术网

Android 使用特定的发件人邮件启动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);

我正在开发一个应用程序来处理与大学生学术生活有关的任何事情,包括他的大学邮件帐户

假设安装我的应用程序的手机有两个或多个不同的gmail帐户设置:
-“账户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来操作他们的应用程序。