使用特定发件人邮件启动Gmail

时间:2015-03-01 17:34:41

标签: 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);  
    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或收件箱的意图,将第二个帐户设置为发件人

1 个答案:

答案 0 :(得分:0)

要访问Android手机中的注册帐户,您必须为您的Manifest文件添加android.permission.GET_ACCOUNTS权限。此权限允许访问帐户服务中的帐户列表。

<uses-permission android:name=”android.permission.GET_ACCOUNTS” />

使用以下方法获取移动设备中的帐户列表(Google帐户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;
    }

从代码中方法返回的列表中获取帐户,验证您需要哪个帐户。例如,我将其设置为第一个找到的帐户为To 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);  
}