我设法从Unity 3D中启动外部Android活动
这是我的代码
public void StartPackage()
{
AndroidJavaClass activityClass;
AndroidJavaObject activity, packageManager;
AndroidJavaObject launch;
string package = "com.example.unitysender";
activityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
activity = activityClass.GetStatic<AndroidJavaObject>("currentActivity");
packageManager = activity.Call<AndroidJavaObject>("getPackageManager");
launch = packageManager.Call<AndroidJavaObject>("getLaunchIntentForPackage", package);
activity.Call("startActivity", launch);
}
这是我的活动
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent();
intent.setAction("UnityToAndroid");
sendBroadcast(intent);
finish();
}
}
正如您所看到的,Unity中的 StartPackage 在第三方应用程序中启动Android活动,并且该活动发送广播。 我在想,有什么方法可以在这样做时传递一些参数吗? 显然,现在它们都没有发送/接收任何数据的代码,但是我需要我的活动来接收一个整数来传递给广播,所以我没有被迫调用这个方法< em> x 次。