Android 如何从联系人姓名或对话ID启动聊天室对话?

Android 如何从联系人姓名或对话ID启动聊天室对话?,android,android-intent,android-contacts,hangout,Android,Android Intent,Android Contacts,Hangout,我有一个问题,这几天一直困扰着我。我希望能够在我自己的第三方应用程序中打开特定的聊天室。到目前为止,我只能通过发送短信意图来打开对话,但这些意图通常会启动新的对话,而不是打开现有的对话,所以这对我没有什么帮助 使用pendingent:我的应用程序连接到通知服务,从那里我可以获得一个pendingent来打开对话。这基本上就是我想要的。但是,当有多条新消息时,pendingent只会打开聊天室,而不是任何特定的对话。在手机重启期间,我也无法保持挂起功能。因此,虽然这对一条消息有效,但我不认为这会

我有一个问题,这几天一直困扰着我。我希望能够在我自己的第三方应用程序中打开特定的聊天室。到目前为止,我只能通过发送短信意图来打开对话,但这些意图通常会启动新的对话,而不是打开现有的对话,所以这对我没有什么帮助

使用
pendingent
我的应用程序连接到通知服务,从那里我可以获得一个
pendingent
来打开对话。这基本上就是我想要的。但是,当有多条新消息时,
pendingent
只会打开聊天室,而不是任何特定的对话。在手机重启期间,我也无法保持
挂起功能。因此,虽然这对一条消息有效,但我不认为这会扩大。可以吗

使用会话ID的方法:
pendingent
中,我还可以获得每个会话的特定会话ID。我希望能够将ID插入URL(例如,
https://plus.google.com/hangouts/_/UgwTtVFQbZXPXgVbQs94AaABAQ
),然后将其作为意图的URI启动,但这也不起作用。它确实打开了社交网络,但却打开了一个坏掉的视频通话。我一直在通过Hangouts
AndroidManifest.xml
查找其他可能的URL,但到目前为止我尝试的一切都失败了

处理电话联系人:我尝试过的最后一种方法是,在聊天室对话中记下对方的姓名/电话/电子邮件,在电话联系人中查找,然后尝试将数据传递给聊天室,希望它能打开正确的对话。我知道当通话不在手机的通讯录中时,这是行不通的,但这是我可以做出的让步。我从Tasker身上看到的东西,特别是在开始的几分钟里,激发了我尝试这种方法的灵感。这是可能的,这应该工作,我只是没有做正确的方式,但到目前为止,这是一个没有去

我还考虑过正常打开聊天室,然后使用辅助功能服务模拟用户输入,手动导航到与名称匹配的对话。然而,这似乎是一种非常容易出错且非常严厉的方法


我错过了什么明显的东西吗?似乎应该有一个干净的方法来做到这一点,启动一个意图,告诉闲逛者为某某打开正在进行的对话。我错过了什么?

你可以尝试做的一件事是看看Hangouts是否真的公开了ContentProvider(我对此表示怀疑),但也许有什么可能。但您必须熟悉它们已经存在的表和结构。为了弄清楚这一点,您基本上需要查看它们的清单,这可以通过使用PackageManager API实现。或者,如果你幸运的话,你可以反编译APK并以这种方式查看清单。你可以尝试做的一件事是看看Hangouts是否真的公开了ContentProvider(我对此表示怀疑),但可能存在某种可能性。但您必须熟悉它们已经存在的表和结构。为了弄清楚这一点,您基本上需要查看它们的清单,这可以通过使用PackageManager API实现。或者,如果你幸运的话,你可以反编译APK并以这种方式查看清单。