You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中如何通过Intent打开WhatsApp联系人选择界面?

问题描述

此前我可以通过以下Intent打开WhatsApp的联系人选择界面/Activity(ContactPicker):

sendIntent.setComponent(new ComponentName("com.whatsapp","com.whatsapp.ContactPicker"));

但该方法目前已失效,出现如下错误:

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.whatsapp/com.whatsapp.ContactPicker}; have you declared this activity in your AndroidManifest.xml?

请问目前是否仍可实现该功能?是否需要使用其他Intent?

解决方案

WhatsApp的com.whatsapp.ContactPicker属于内部私有Activity,官方并未对外公开这类组件的使用权限,随时可能修改或移除,因此之前直接指定ComponentName的方法失效是正常情况。

目前可以通过官方公开的Intent方案实现打开WhatsApp联系人选择界面的需求:

  • 使用Intent.ACTION_PICK并指定特定的MIME类型"vnd.android.cursor.dir/vnd.whatsapp.profile",这是WhatsApp官方支持的公开接口,稳定性更高。

示例代码如下:

// 构建选择联系人的Intent
Intent whatsappContactPicker = new Intent(Intent.ACTION_PICK);
whatsappContactPicker.setType("vnd.android.cursor.dir/vnd.whatsapp.profile");

// 启动界面(Android 10及以下用startActivityForResult,Android 11+推荐使用ActivityResultAPI)
startActivity(whatsappContactPicker);

如果需要获取选中联系人的相关信息,可以通过Activity的返回结果(onActivityResult或ActivityResultCallback)获取返回的Uri,再通过ContentResolver解析对应数据。

注意:确保用户设备上已安装WhatsApp,否则会出现ActivityNotFound异常,建议提前做存在性检查。

内容的提问来源于stack exchange,提问作者moster67

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 03:45:37