java - 在 C#/Unity 中启动外部 Android 应用程序

标签 java c# android unity-game-engine

所以我已经被这个问题困扰了好几天了。我已经将 Unity 与 Eclipse IDE 集成,我可以完美地构建和部署项目。但是,我尝试在 java 端启动一个基本 Intent 并在 Unity/C# 端触发它。

这是我的 Java 端代码:

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

import com.unity3d.player.UnityPlayerNativeActivity;

public class AppLauncher extends UnityPlayerNativeActivity 
{

    public  Intent myIntent;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);

        //Assuming that we want to launch the browser to browse a website
        Uri uri = Uri.parse("http://www.google.com");
        myIntent= new Intent(Intent.ACTION_VIEW, uri);
    }

    public void Trigger()
    {       
        startActivity(myIntent);

    }
}

这是当 C# 触发器被触发时 logcat 抛出的错误:

这是我的 if it 的 C# 端代码:

if(s[0].Equals("Spr"))
{
    print("Launched");
    AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
    jo.Call("Trigger");
}

这是当 C# 触发器被触发时 logcat 抛出的错误:

AndroidJavaException: java.lang.NoSuchMethodError: no method with name='Trigger' signature='()V' in class Lcom/unity3d/player/UnityPlayerNativeActivity;

我尝试过通过在 C# 脚本中传递自定义签名和触发器方法名称来搞砸,我尝试过扩展标准 UnityPlayerActivity 等...我已经尝试了几个小时的东西,但我似乎无法解决这是问题。

我们非常接受任何帮助!

最佳答案

您确定您的 Activity 已创建吗?您真的需要延长 Activity 吗?我会尝试这样的事情:

Java:

package my.package;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;

public class AppLauncher 
{
    public static void Trigger()
    {     
        //Assuming that we want to launch the browser to browse a website
        Uri uri = Uri.parse("http://www.google.com");
        Intent myIntent= new Intent(Intent.ACTION_VIEW, uri);  
        startActivity(myIntent);
    }
}

C#:

AndroidJavaObject jo = new AndroidJavaObject("my.package.AppLauncher");
jo.CallStatic("Trigger");

关于java - 在 C#/Unity 中启动外部 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26437626/

相关文章:

c# - 如何获得内部带有矩形的 ScrollViewer 以在到达矩形末端时停止滚动?

android应用程序部署和发布

java webstart 反编译器

java - 如果为 ArrayList<Interface> 定义,则该方法不能应用于 ArrayList<ObjectImplementsInterface>

c# - Linux上的Web服务

c# - toTitleCase 忽略 C# 中的序数

java - 如何找出JVM或现有进程调用了main方法?

JAVA如何查找和删除句子结构?

android - 如何在Flutter中获取复杂的Json对象?

android - 从 retrofit2 和 rxjava 中的错误中获取 url