Android Facebook Messenger 原始联系意向

Android facebook messenger raw contact intent

嗯,我正在从 ContactProvider 获取联系人的 RawContacts。 Viber、Whatsapp、Skype、Telegram 等在

上运行良好
Uri uri = Uri.parse("content://com.android.contacts/data/" + rawContactId);
Intent i = new Intent(Intent.ACTION_VIEW, uri); 

但是当涉及到 Facebook Messenger 的 RawContacts 时出了点问题

E/msgr(:):AbstractIntentHandlerActivity: Future failed for intent Intent { act=android.intent.action.VIEW dat=content://com.android.contacts/data/21839 flg=0x10800000 cmp=com.facebook.orca/com.facebook.messenger.intents.IntentHandlerActivity }. Waiting for result: false.

有人知道为什么标准的 contact-view Intent 不能很好地工作吗?有没有针对这种情况的优雅解决方案?

标准 Android 联系人应用程序可以很好地处理这种情况。

根据标准 Android 联系人应用程序源代码,mimetype 应传递给 Intent。

Uri uri = Uri.parse("content://com.android.contacts/data/" + rawContactId);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(uri, rawContactMimetype);

Facebook Messenger 正确启动