如何从 Delphi Android 应用程序开始视频通话?
Posted
技术标签:
【中文标题】如何从 Delphi Android 应用程序开始视频通话?【英文标题】:How to start a videocall from Delphi Android app? 【发布时间】:2019-05-21 15:51:17 【问题描述】:我正在寻找一种方法来从我用 Delphi 10.3 编写的 android 应用开始视频通话。为此,我想将 Android 意图用于第 3 方应用(WhatsApp 或 Skype)。
这是我已经尝试过的。我使用123
作为联系人 ID,希望即使它不是有效的 ID,WhatsApp 仍应打开并发出警告:
基于https://***.com/a/38674897 - 没有任何反应
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setData(StrToJURI('content://com.android.contacts/data/123'));
Intent.setType(StringToJString('vnd.android.cursor.item/vnd.com.whatsapp.voip.call'));
基于https://***.com/a/46049004 - 没有任何反应
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setData(StrToJURI('content://com.android.contacts/data/123'));
Intent.setType(StringToJString('vnd.android.cursor.item/vnd.com.whatsapp.video.call'));
Intent.setPackage(StringToJString('com.whatsapp'));
修复建议停用 SetType https://***.com/a/28244207 - 没有任何反应
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
Intent.setDataAndType(
StrToJURI('content://com.android.contacts/data/123'),
StringToJString('vnd.android.cursor.item/vnd.com.whatsapp.video.call'));
Intent.setPackage(StringToJString('com.whatsapp'));
基于 https://***.com/a/14294299 的 Skype 代码示例 - 它会打开 Skype,但不会在第一次尝试时打开聊天/通话。如果我在 Skype 在后台打开时切换到我的应用程序,第二次尝试它会开始视频通话。
Intent := TJIntent.Create;
Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
//Intent.setData(StrToJURI('skype:username?call&video=true'));
Intent.setData(StrToJURI('skype:username'));
尝试videocall
操作 - 弹出消息“找不到接收器”
Intent := TJIntent.Create;
Intent.setAction(StringToJString('com.android.phone.videocall'));
Intent.setData(StrToJURI('skype:username'));
Intent := TJIntent.Create;
Intent.setAction(StringToJString('com.android.phone.videocall'));
Intent.setData(StrToJURI('tel:123456789'));
所有意图都通过以下方式执行:
if MainActivity.getPackageManager.queryIntentActivities(Intent, TJPackageManager.JavaClass.MATCH_DEFAULT_ONLY).size > 0 then
MainActivity.startActivity(Intent)
else
ShowMessage('Receiver not found');
如何通过 Delphi 编写的 Android 应用进行视频通话?
【问题讨论】:
俄语中的相同问题:ru.***.com/questions/923657 似乎这些答案的代码比您显示的要多 @DaveNottage 添加了意图调用代码。我还能提供什么? 您是否尝试过除 TJPackageManager.JavaClass.MATCH_DEFAULT_ONLY 之外的其他意图执行参数? @Lucker10 现在尝试MATCH_ALL
,没有任何改变。
【参考方案1】:
这不是 dephi 特定的问题。您的代码即使在 java 中也不起作用。(它显示未找到接收器)
请参阅以下内容。他们在java中,但我想他们可以为你指出正确的道路
-
android-make whatsapp call
Android: Retrieve contact name from phone number
https://developer.android.com/training/permissions/requesting#java
【讨论】:
感谢您提供的链接,但是他们似乎没有回答问题。 1. 具有与问题相同的代码。 2. 检索联系人姓名并非如此。 3.获取权限也不是这样。以上是关于如何从 Delphi Android 应用程序开始视频通话?的主要内容,如果未能解决你的问题,请参考以下文章
Delphi春天将来临,Android遇到XE7我也是醉了,Hello World
如何使用Delphi更改Android应用程序中的标题栏颜色