Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按下按钮将数据从unity应用发送到android应用_Android_Unity3d_Augmented Reality_Vuforia - Fatal编程技术网

按下按钮将数据从unity应用发送到android应用

按下按钮将数据从unity应用发送到android应用,android,unity3d,augmented-reality,vuforia,Android,Unity3d,Augmented Reality,Vuforia,我有两个应用程序,一个是android java应用程序,另一个是unity应用程序 Unity应用程序识别该对象并显示一些细节。我想做的是,如果用户单击标识对象时显示的按钮,我想将该信息发送到java android应用程序,以便该应用程序可以使用该数据执行某些功能。用户点击按钮后,我如何发送数据并从unity切换到java android应用程序 编辑:任何一个寻找答案的人。我通过下面的代码成功地做到了这一点 在UNITY应用程序中: 如果我理解正确,您希望两个应用程序都在同一台设备上。 最

我有两个应用程序,一个是android java应用程序,另一个是unity应用程序

Unity应用程序识别该对象并显示一些细节。我想做的是,如果用户单击标识对象时显示的按钮,我想将该信息发送到java android应用程序,以便该应用程序可以使用该数据执行某些功能。用户点击按钮后,我如何发送数据并从unity切换到java android应用程序

编辑:任何一个寻找答案的人。我通过下面的代码成功地做到了这一点

在UNITY应用程序中:
如果我理解正确,您希望两个应用程序都在同一台设备上。 最简单的方法是将数据保存到unity应用程序中的一个文件中,然后在android应用程序中从该文件中读取。但我认为您甚至可以在应用程序调用中附加数据,这样您甚至不需要临时保存它。 从Unity打开Android应用程序也是可能的。有人问了同样的问题,得到了一些有用的答案


编辑:从我收集到的信息来看,你可以通过意向传输你的数据,似乎大多数人都可以从那里打意向电话。

我已经使用帖子中的代码从unity app打开了其他应用程序(我已经用代码更新了帖子)。有没有什么方法可以让我用这些代码向java android应用程序发送一些数据。我想我可以做你想做的事情。
    public void LaunchAppMessage()
    {
        string bundleId = "com.example.sidenavtest";
        bool fail = false;
        string message = "message";
        AndroidJavaClass up = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject ca = up.GetStatic<AndroidJavaObject>("currentActivity");
        AndroidJavaObject packageManager = ca.Call<AndroidJavaObject>("getPackageManager");
        AndroidJavaObject launchIntent = null;

        try
        {
            launchIntent = packageManager.Call<AndroidJavaObject>("getLaunchIntentForPackage", bundleId);
            launchIntent.Call<AndroidJavaObject>("putExtra", "arguments", message);
        }
        catch (System.Exception e)
        {
            fail = true;
        }

        if (fail)
        {
            Application.OpenURL("https://google.com");
        }
        else
        {
            ca.Call("startActivity", launchIntent);
        }
        up.Dispose();
        ca.Dispose();
        packageManager.Dispose();
        launchIntent.Dispose();
    }


    @Override
    protected void onStart() {
        super.onStart();
        Bundle extras = getIntent().getExtras();
        String userName;

        if (extras != null) {
            userName = extras.getString("arguments");

        }
    }