首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用C# Unity进行whatsapp视频呼叫

如何使用C# Unity进行whatsapp视频呼叫
EN

Stack Overflow用户
提问于 2021-02-10 21:09:26
回答 1查看 286关注 0票数 0

我的目标:只需按下一个按钮,whatsapp就会开始与特定人员进行视频通话。我不太了解Java,所以我想通过Unity中的C#来完成这项工作。

我试图通过将this process转换为C#来复制它。

但有些地方不对劲,因为一旦按下按钮,我就只能访问whatsapp主页。

我还添加了从清单访问联系人的权限。

我所有的工作都是手动完成的,所以我将脚本粘贴到android studio上,以便找到某个特定联系人的_id,该联系人使用的是whatsapp视频通话的mimetype。

所以我试着通过Unity的AndroidJavaClass来翻译呼叫函数:

Java代码:

代码语言:javascript
复制
 public void videoCall(String id){
            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_VIEW);

            intent.setDataAndType(Uri.parse("content://com.android.contacts/data/" + id),
                    "vnd.android.cursor.item/vnd.com.whatsapp.video.call");
            intent.setPackage("com.whatsapp");

            startActivity(intent);
}

C#代码:

代码语言:javascript
复制
public static class Intentions
{
static string id = "5576";
static string data_url = "content://com.android.contacts/data/" + id;
static string type_url = "vnd.android.cursor.item / vnd.com.whatsapp.video.call";

public static AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
public static AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject> 
("currentActivity");
public static AndroidJavaObject packageManager = currentActivity.Call<AndroidJavaObject> 
("getPackageManager");
public static AndroidJavaObject intent = packageManager.Call<AndroidJavaObject> 
("getLaunchIntentForPackage", "com.whatsapp");

public static AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
public static AndroidJavaObject uriData = uriClass.CallStatic<AndroidJavaObject>("parse", data_url);

public static void Launch()
{
    intent.Call<AndroidJavaObject>("setAction", "android.intent.action.VIEW");
    intent.Call<AndroidJavaObject>("setDataAndType", uriData, type_url);

    if (IsAndroid())
    {
        currentActivity.Call("startActivity", intent);
    }
}

public static bool IsAndroid()
{
#if UNITY_ANDROID && !UNITY_EDITOR
    return true;
#else
    return false;
#endif
}
}
EN

回答 1

Stack Overflow用户

发布于 2021-02-10 22:56:25

你实际上不需要通过Java做一个插件,但是可以直接从你的Unity源代码中使用C#。这样做可以通过REST接口调用WhatsApp接口。

代码语言:javascript
复制
String number = “16696661337”;
String url = "https://api.whatsapp.com/send?phone=" + number;
/* 
mobile number is: 1-(669)666-1337, your final string will be:
https://api.whatsapp.com/send?phone=6696661337
*/
Application.OpenURL(url);

如果你愿意,你也可以发送短信。不要忘记包含您的国家/地区代码,以使API按预期工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66137549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档