【发布时间】:2014-08-19 21:54:05
【问题描述】:
我正在尝试通过插件将我的 Unity 项目连接到 Java 以启动另一个应用程序,但尝试这样做没有成功。
统一(C#):
public void AndroidCallNonStatic() {
using (AndroidJavaClass javaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) {
using (AndroidJavaObject activity = javaClass.GetStatic<AndroidJavaObject>("currentActivity")) {
object[] targs = new object[1] { "org.mozilla.firefox" };
activity.Call("nonStaticMethod", targs);
}
}
}
Java(安卓):
import com.unity3d.player.UnityPlayerActivity;
public class Main extends UnityPlayerActivity {
public static Context mContext;
public static PackageManager mManager;
@Override
protected void onCreate(Bundle bundle)
{
super.onCreate(bundle);
mContext = this;
mManager = getPackageManager();
}
public void nonStaticMethod(String s)
{
Log.d("TAG","nonStatic method was called");
launchApp(s);
}
public static void StaticMethod(String s)
{
Log.d("TAG","Static method was called " + s);
launchApp(s);
}
public void launchApp(String packageName)
{
Intent intent = getPackageManager().getLaunchIntentForPackage(packageName);
if (intent != null)
{
// Activity was found, launch new app
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
else
{
// Activity not found. Send user to market
intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setData(Uri.parse("market://details?id="+packageName));
startActivity(intent);
}
}
}
谁能帮我解决这个问题?我已经用尽了我的 Android/Unity 知识,无法理解为什么它不起作用。我的想法是它与包名有关。
【问题讨论】:
-
Unity 是给你一些错误,还是只是没有找到插件?
-
@dudeprgm Unity 给我一个空指针异常的错误,但插件本身正在被发现。我觉得这没有启动的原因是因为我需要知道要启动的活动的实际名称。我正在运行更多测试,看看我是否可以启动更容易集成的 Google 相机或图库。