从同一收件人(GMAIL API)获取所有邮件

时间:2017-04-24 12:21:46

标签: android gmail-api

我的代码:

public class HistoriqueActivity extends FragmentActivity {

private GoogleAccount mGoogleAccount;
private HistoriquePagerAdapter mHistoriquePagerAdapter;
private ViewPager mViewPager;
private ArrayList<Message> listMessage;
@Override
public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.historique);

    this.mHistoriquePagerAdapter = new HistoriquePagerAdapter(getSupportFragmentManager());
    this.mViewPager = (ViewPager) findViewById(R.id.pager);
    this.mViewPager.setAdapter(mHistoriquePagerAdapter);
    this.mGoogleAccount = GOOGLE_ACCOUNT_USED;
    this.listMessage = new ArrayList<>();

    //this line:
    this.listMessage = mGoogleAccount.getmGmail().users().messages().get(mGoogleAccount.getmCredential().getSelectedAccountName(), /* recipient */);

}

}

我的问题是这一行,我不知道如何获得具有相同收件人的所有邮件,是否存在任何功能? Gmail文档并不容易理解。

1 个答案:

答案 0 :(得分:1)

您可以使用list功能代替gethttps://developers.google.com/gmail/api/v1/reference/users/messages/list

在你的情况下,

mGoogleAccount.getmGmail().users().messages().get(mGoogleAccount.getmCredential().getSelectedAccountName(), /* recipient */);

变为

mGoogleAccount.getmGmail().users().messages().list(mGoogleAccount.getmCredential().getSelectedAccountName()).setQ("to:address@mail.com").execute();

address@mail.com是您想要的邮件的收件人。 setQ()的参数是您可以在Gmail客户端上使用的查询:https://support.google.com/mail/answer/7190?hl=en

显然,您必须按照Gmail API文档中的说明初始化mGoogleAccount变量。