如何从Android活动启动Unity应用程序?

4

我是Unity的新手,不知道如何从Android活动中启动Unity应用程序。 我需要一个小部件,有时会更改(例如,当收到短信时),并且单击后启动Unity应用程序。小部件和Unity项目分别没有问题。但我不知道如何从Android项目中启动Unity。


如果您想从您的应用程序启动另一个应用程序,则可以通过其包名称启动另一个应用程序。 - Vineet Shukla
谢谢,我使用了getLaunchIntentForPackage(“package_name”)。 要知道Unity应用程序的软件包名称,我查看BuildSettings / PlayerSettings,然后在检查器OtherSettings / BundleIdentifier中。它好使 :) - user966562
2个回答

0

我从小部件按钮调用启动应用程序,并且它对我有所帮助。 我从 onUpdate 小部件方法中调用 UpdateWidgetButtonsAction() 并将 PendingIntent 设置为 onClick。

 private void UpdateWidgetButtonsAction(Context context, AppWidgetManager appWidgetManager, int widgetID)
    {
        RemoteViews widgetView = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
        widgetView.setOnClickPendingIntent(R.id.MyButtonImage, getPendingSelfIntent(context, "ACTION_LOAD_APP"));
        appWidgetManager.updateAppWidget(widgetID, widgetView);
    }

然后创建BroadcastReciever,它接收ACTION_LOAD_APP操作,并启动startActivity

public class WidgetBroadcastReceiver extends BroadcastReceiver
{

@Override
public void onReceive(Context context, Intent intent) {

    LogCollector.Log("WidgetBroadcastReceiver " + intent.getAction());
    if(ACTION_LOAD_APP.equals(intent.getAction()))
    {
        Intent launchIntent = context.getPackageManager().getLaunchIntentForPackage("UNITY_PACKAGE_NAME");
        context.startActivity(launchIntent);
    }
}

}


0

您可以扩展主活动UnityPlayerActivity(控制Android上Unity Player的主循环)

public class MainActivity extends UnityPlayerActivity implements MyFunction {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

    }

    @Override
    protected void onPause() {
        super.onPause();
    }

    @Override
    protected void onStop() {
        super.onStop();
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }


}

这里是文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接