如何使用联系人数据打开WhatsApp的对话活动?

Sun*_*nny 6 android android-intent whatsapp

我想cmp=com.whatsapp/.Conversation从我的应用程序中打开应用程序对话活动.

我怎样才能做到这一点?我有联系电话号码,联系人ID,联系原始身份证,还有特定联系人的应用程序.

private void openWhatsApp(String id) {

    Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("content://com.android.contacts/data/"+id));
    Log.v("ssssss", s);
    i.setType("vnd.android.cursor.item/vnd.com.whatsapp.profile");
    i.setComponent(new ComponentName("com.whatsapp", ".Conversation"));
    startActivity(i);
}


04-20 18:13:45.794: I/ActivityManager(1862): START
{act=android.intent.action.VIEW
dat=content://com.android.contacts/data/8269
typ=vnd.android.cursor.item/vnd.com.whatsapp.profile
cmp=com.whatsapp/.accountsync.ProfileActivity} from pid 32159


04-20 18:42:11.317: I/ActivityManager(1862): START {flg=0x14000000 cmp=com.whatsapp/.Conversation (has extras)} from pid 1150
Run Code Online (Sandbox Code Playgroud)

Sun*_*nny 6

private void openWhatsApp(String id) {

Cursor c = getContentResolver().query(ContactsContract.Data.CONTENT_URI,
        new String[] { ContactsContract.Contacts.Data._ID }, ContactsContract.Data.DATA1 + "=?",
        new String[] { id }, null);
c.moveToFirst();
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("content://com.android.contacts/data/" + c.getString(0)));

startActivity(i);
c.close();
}
Run Code Online (Sandbox Code Playgroud)

id是什么应用程序uri喜欢 0987654321@s.whatsapp.net

  • @MahiSingh我只是删除了getSherlockActivity()并且它的工作完美. (2认同)