如何从Delphi Android应用程序启动视频通话?

Kro*_*ica 7 delphi android skype android-intent whatsapp

我正在寻找一种方法从我用Delphi 10.3编写的Android应用程序启动视频通话.为此,我想将Android意图用于第三方应用程序(WhatsApp或Skype).

这是我已经尝试过的.我正在使用123联系人ID,期望即使它不是一个有效的ID,WhatsApp仍然应该打开并警告:

基于/sf/answers/2707242821/ - 没有任何反应

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'));
Run Code Online (Sandbox Code Playgroud)

基于/sf/answers/3223430311/ - 没有任何反应

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'));
Run Code Online (Sandbox Code Playgroud)

修复建议不要使用SetType /sf/answers/1977094521/ - 没有任何反应

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'));
Run Code Online (Sandbox Code Playgroud)

基于/sf/answers/1000600961/的 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'));
Run Code Online (Sandbox Code Playgroud)

尝试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'));
Run Code Online (Sandbox Code Playgroud)

所有意图都执行:

if MainActivity.getPackageManager.queryIntentActivities(Intent, TJPackageManager.JavaClass.MATCH_DEFAULT_ONLY).size > 0 then
  MainActivity.startActivity(Intent)
else
  ShowMessage('Receiver not found');
Run Code Online (Sandbox Code Playgroud)

如何使用Delphi编写的Android应用程序进行视频录制?

Dr *_*Deo 0

这不是 dephi 特定的问题。即使在 java 中,您的代码也无法工作。(它显示未找到接收器)

请参阅以下内容。它们是用java编写的,但我想它们可以给你指出正确的路径

  1. android-拨打whatsapp电话
  2. Android:从电话号码中检索联系人姓名
  3. https://developer.android.com/training/permissions/requesting#java