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

Posted

技术标签:

【中文标题】如何从 android 活动启动 Unity 应用程序?【英文标题】:How to start Unity application from android activity? 【发布时间】:2011-10-07 11:58:03 【问题描述】:

我是 Unity 的新手,真的不明白如何从 android 活动启动统一应用程序。 我需要一个有时会发生变化的小部件(例如,当收到短信时)并单击启动统一应用程序。小部件和统一项目分开没有问题。但我不知道如何从 android 项目开始统一。

【问题讨论】:

如果你想从你的应用启动另一个应用,那么你可以通过它的包名启动另一个应用。 谢谢,我使用了 getLaunchIntentForPackage("package_name")。要知道 Unity 应用程序包名称,我查看 BuildSettings/PlayerSettings,然后在检查器 OtherSettings/BundleIdentifier 中查看。它有效:) 【参考方案1】:

您可以扩展主活动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();
    



这里是document

【讨论】:

【参考方案2】:

我从小部件按钮调用启动应用程序,这对我有帮助。 我从 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动作,并启动Activity

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);
    

【讨论】:

以上是关于如何从 android 活动启动 Unity 应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

当一个活动直接从一个通知启动时,你如何构建一个 Android 后台堆栈?

Android:从应用程序类启动新活动

当活动在android中启动时如何隐藏软键盘?

Android 从应用程序上下文启动活动

在某些任务杀手杀死应用程序后如何恢复android应用程序?

如何在 PhoneGap 应用启动时启动 Android 活动?