代码之家  ›  专栏  ›  技术社区  ›  Kromster Satyajit

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

  •  7
  • Kromster Satyajit  · 技术社区  · 6 年前

    我正在寻找一种方法来启动一个视频通话从我的Android应用程序在德尔福10.3编写。为此,我想使用Android意向第三方应用程序(WhatsApp或Skype)。

    123 作为联系人id,即使不是有效id,WhatsApp仍应打开并发出警告:

    基于 https://stackoverflow.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://stackoverflow.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'));
    

    https://stackoverflow.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'));
    

    Skype代码示例基于 https://stackoverflow.com/a/14294299

    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应用程序进行视频通话?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Dr Deo    6 年前

    这不是德菲的具体问题。你的代码即使是用java编写的也不起作用。(它显示找不到接收器)

    见下文。它们是用java编写的,但我想它们可以为您指明正确的道路

    1. android-make whatsapp call
    2. Android: Retrieve contact name from phone number
    3. https://developer.android.com/training/permissions/requesting#java