发起视频通话

Posted

技术标签:

【中文标题】发起视频通话【英文标题】:Initiating Video Call 【发布时间】:2011-06-20 11:15:47 【问题描述】:

我正在 Gingerbread Galaxy Tab P1000 上运行最新版本的 GTalk(使用市场上的 Talk 安装程序)。

我现在想以编程方式,前提是相关联系人在线且可用。

由于我没有找到任何文档,因此我查看了 related XML 并发现了以下有趣的部分:

  <activity-alias android:icon="@drawable/ic_launcher_google_videochat" android:name="PublicCallIntentDispatcher" android:targetActivity="PublicIntentDispatcher">
            <intent-filter>
                <action android:name="android.intent.action.SENDTO" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.cursor.item/video-chat-address" android:scheme="xmpp" />
            </intent-filter>
        </activity-alias>

因为它是“发送至”操作,所以我不需要特别许可,对吗?我的问题是,我不知道如何获取 vnd.android.cursor.item/video-chat-address 类型的项目。你有什么想法或暗示我可以尝试什么吗?

提前致谢!

【问题讨论】:

(对此有点生疏):您知道一些现有软件发送这样的 Intent 的实例(可能来自联系人页面?)。您可能会尝试发起视频聊天,检查您的 LogCat,然后对 Intent 的 URI 格式进行逆向工程。我没有安装允许视频聊天的 Talk 应用程序,所以我不能自己尝试,抱歉!希望这会有所帮助! 【参考方案1】:

编辑:

不得不在拆卸过程中进行一些破解,但我得到了这个(电子邮件是你想要的地址):

Uri imUri = new Uri.Builder().scheme("xmpp").authority("gtalk").query("call;type=video").appendPath(email).build();
Intent IM = new Intent(Intent.ACTION_SENDTO);
IM.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
IM.setData(imUri);
startActivity(IM);

这可行,但仍会提示您是否要开始视频聊天,这不是我所需要的。希望这对其他人有所帮助。

【讨论】:

【参考方案2】:

抱歉,不支持此功能。深入研究这样的应用程序正在查看其实现细节;除非您从应用程序的作者那里获得支持与它的交互的文档,否则您能做的最好的事情就是编写在将来更新该应用程序时可能会中断的代码。

【讨论】:

你的意思是它不是“无法改变的事情”的一部分:) [android-developers.blogspot.com/2011/06/… 链接修正[android-developers.blogspot.com/2011/06/…

以上是关于发起视频通话的主要内容,如果未能解决你的问题,请参考以下文章

安卓系统怎么视频通话

Agora 的视频通话布局

第二台设备无法进行视频通话

浅聊WebRTC视频通话

我可以使用 UCMA 3.0 以编程方式建立视频通话吗?

Android技术分享| 视频通话开发流程