Android:如何启动电子邮件联系人?

标签 android email contacts

此 Intent 打开联系人,其中仅包含带有地址信息的条目:

Intent getContactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI);

现在我尝试使用此模式来过滤包含电子邮件的联系人:

Intent getContactIntent = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Email.CONTENT_URI);

但这除外(没有出于 Intent 等的action_pick)

我怎样才能实现这一目标?

最佳答案

目前您不能使用默认的联系人应用程序:默认的联系人应用程序注册此 Intent 过滤器(请参阅 https://android.googlesource.com/platform/packages/apps/Contacts/+/master/AndroidManifest.xml#165 中的第 165 行):

<intent-filter>
                 <action android:name="android.intent.action.PICK" />
                 <category android:name="android.intent.category.DEFAULT" />
                 <data android:mimeType="vnd.android.cursor.dir/contact" />
                 <data android:mimeType="vnd.android.cursor.dir/person" />
                 <data android:mimeType="vnd.android.cursor.dir/phone_v2" />
                 <data android:mimeType="vnd.android.cursor.dir/phone" />
                 <data android:mimeType="vnd.android.cursor.dir/postal-address_v2" />
                 <data android:mimeType="vnd.android.cursor.dir/postal-address" />
             </intent-filter>

因此它能够响应邮政地址 ACTION_PICK Intent ,但不能响应电子邮件地址 ACTION_PICK Intent 。

如果您想要选择电子邮件地址,则需要创建自己的 Activity ,该 Activity 从联系人提供程序获取游标,该游标仅显示具有电子邮件地址的用户,并在 ListView 中显示该地址供用户选择。

关于Android:如何启动电子邮件联系人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5987929/

相关文章:

html - 如何编辑联系表 7 的单选按钮?

android - Android上联系人的上次修改时间

java - Android:使用两个 View 进行缩放

java - Freemarker - 电子邮件主题模板中缺少特殊字符导调用子邮件内容崩溃

php - Codeigniter achor 在电子邮件收件箱中生成狡猾的链接..可能是什么问题?

android - SimpleCursorAdapter中如何绑定(bind)联系人姓名、电话、联系人照片?

android - 从相机捕获的图像未显示(OnActivityResult)

Android 11 - 读取所有应用程序的 Android/数据目录,无需遗留请求(文件管理器/备份目的)

android - Sqlite - 条件选择?

node.js - Nodemailer 无法使用 gmail 发送邮件