【问题标题】:Is it possible to open a game on the phone, for example, or enter the gallery while in my application?例如,是否可以在手机上打开游戏,或者在我的应用程序中进入图库?
【发布时间】:2025-11-21 13:45:01
【问题描述】:

我最近开始编程,但我还没有足够的经验 - 所以我请你帮忙......

我使用 Unity 2020,任务是打开手机上的游戏,例如图库和手机上的其他应用程序(不是打开 Internet 上的链接,而是打开手机上的应用程序) ),我有一个代码可以控制,例如,位于场景中的浏览器,而这一切都发生在我的应用程序中,但我仍然想知道这是否可能,只是不能使用 Internet 上的页面,但在智能手机上使用应用程序本身...提前致谢!

【问题讨论】:

  • 我认为这取决于操作系统。应该有插件可以满足您的要求,并且在 Unity Answers 论坛上也有很多关于此的讨论。

标签: c# android unity3d augmented-reality


【解决方案1】:

好的,所以对于启动相机应用程序,您只能使用 C#:

 static int REQUEST_IMAGE_CAPTURE = 1;

 public void StartPlugin()
    {
      
        
        AndroidJavaClass IntentClass = new AndroidJavaClass("android.content.Intent");
        AndroidJavaObject IntentObject = new AndroidJavaObject("android.content.Intent");

        AndroidJavaObject MSObject = new AndroidJavaObject("android.provider.MediaStore");

        IntentObject.Call<AndroidJavaObject>("setAction", MSObject.GetStatic<string>("ACTION_IMAGE_CAPTURE"));

        AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
        currentActivity.Call("startActivityForResult", IntentObject, REQUEST_IMAGE_CAPTURE);

    }

对于 viber、youtube 等启动应用,您可以使用以下代码:

 private string package = "com.viber.voip";

 public void Launch()
    {
   
                    AndroidJavaClass activityClass;
                    AndroidJavaObject activity, packageManager;
                    AndroidJavaObject launch;



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

package 变量是应用程序 ID 祝你有美好的一天!!! =)

【讨论】:

    【解决方案2】:

    对于某些应用(如 YouTube、Facebook),您可以使用

    Application.OpenURL("http://unity3d.com/");

    但这只有在您知道应用程序的链接时才有效,对于社交媒体,您可以尝试链接,直到找到打开应用程序的链接。

    我没有尝试对其他应用程序执行此操作,但如果您可以获得应用程序的 URL(不是很难),您应该能够。

    【讨论】:

    • 哦,我可以在不使用链接和 android 插件的情况下启动 android 应用程序)))但是,谢谢您的回答)))您也可以使用 Vuplex 3D 在您的 3d 场景中启动网页=) ))
    最近更新 更多