Android挑选电子邮件意图

Ali*_*aka 8 email android contacts android-intent

我想从联系人列表中选择一封电子邮件.选择联系人不够好,因为联系人可能有几封电子邮件.

使用API​​演示,我设法选择联系人,电话号码甚至地址.例:

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);
// OR
intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
// OR
intent.setType(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE);
Run Code Online (Sandbox Code Playgroud)

但是,当试图选择一封电子邮件时

intent.setType(ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
Run Code Online (Sandbox Code Playgroud)

我得到的活动没有发现异常.

有关如何从所有联系人的电子邮件中选择电子邮件的任何想法?

谢谢.阿利克.

更新(2011/05/02):找到另一种从联系人中挑选东西的方法,但仍未将电子邮件选择器注册到意图中.

工作:

new Intent(Intent.ACTION_PICK,ContactsContract.Contacts.CONTENT_URI);
new Intent(Intent.ACTION_PICK,ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
new Intent(Intent.ACTION_PICK,ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI);
Run Code Online (Sandbox Code Playgroud)

不工作:

new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Email.CONTENT_URI);
Run Code Online (Sandbox Code Playgroud)

Dan*_*n J 1

我没有专门尝试使用选择器,但我们循环遍历联系人缓存并查找 MIME 类型为 的所有联系人详细信息Email.CONTENT_ITEM_TYPE

然后我们构建一个对话框,让用户选择他们想要使用的电子邮件地址,并将该电子邮件地址传递给用户的电子邮件应用程序,例如

  final Intent emailIntent = new Intent(Intent.ACTION_SEND);
  emailIntent.putExtra(Intent.EXTRA_STREAM, "Some text");

  Builder builder = new Builder(this);
  builder.setTitle("Choose email");
  builder.setItems(emailAddressesArray, new DialogInterface.OnClickListener()
  {
    @Override
    public void onClick(DialogInterface dialog, int which)
    {
      String address = emailAddresses.get(emailAddressesArray[which]);
      sLog.user("User selected e-mail: " + address);
      emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{address});
      startExternalActivity(emailIntent);
    }
  });
  builder.show();
Run Code Online (Sandbox Code Playgroud)