我知道这似乎是一个微不足道的问题,但我不能在互联网上的任何地方找到任何具体的答案。 我看到这个计算器非常类似的问题: 如何开始从Android的活动Unity应用? 但它是我的问题正好相反。 此外,该机器人活动必须能够接收来自Unity应用一些输入字符串很像一个使用system()如何与行参数来调用启动PC上的其他程序。
以下是我对在Android上我的测试程序统一测试按钮事件处理程序的代码:
private void ExternalAppCallHandler()
{
if(Application.platform == RuntimePlatform.WindowsEditor)
{
Process.Start(@"C:\Program Files (x86)\Notepad++\notepad++.exe");
}
else if(Application.platform == RuntimePlatform.Android)
{
Process.Start("Internet");
}
}
当我使用统一编辑器来测试,该应用程序成功打开记事本++。exe文件,当我点击测试按钮。 然而,当我试图打开我的三星Galaxy S2设备上的“互联网”应用程序失败。 没有人知道为什么是这样的情况? 应该是什么打开使用的Process.Start其他Android应用正确的字符串?
我不是很熟悉,统一,但有Android体验了相当数量。 所以,把我的答案被提出的建议,而不是一个权威的答案。
纵观启动一个从内部团结的Android应用程序 ,你可以尝试以下方法:
按照在指南与Eclipse集成统一 。
修改如下步骤1中创建Java文件:
package com.Unity3D.EclipseIntegration;
import android.os.Bundle;
import com.unity3d.player.UnityPlayerActivity;
public class EclipseIntegration extends UnityPlayerActivity {
private 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 Launch()
{
startActivity(myIntent);
}
}
并修改您的统一编码:
private void ExternalAppCallHandler()
{
if(Application.platform == RuntimePlatform.WindowsEditor)
{
Process.Start(@"C:\Program Files (x86)\Notepad++\notepad++.exe");
}
else if(Application.platform == RuntimePlatform.Android)
{
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo = jc.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("Launch");
}
}
如果你正面临的任何问题,请张贴logcat的消息。
试试这个更改此启动()方法,以静态和通过Android Java对象即。 “乔”给它象下面。
AndroidJavaClass androidJC = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo= androidJC.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaClass jc = new AndroidJavaClass("package_name.Ur_Actvity_Name");
jc.CallStatic("Launch",jo);`
和改变发射()方法:
public static Launch(Activity activity)
{
Intent myIntent = new Intent();
activity.startActivity(myIntent);
}
希望这将有助于。