c# - ¿Es posible abrir un juego en el teléfono, por ejemplo, o ingresar a la galería mientras estoy en mi aplicación?

CorePress2024-01-24  8

Recientemente comencé a programar y aún no tengo suficiente experiencia, así que te pido que me ayudes...

Utilizo Unity 2020 y surgió la tarea de abrir juegos que están en el teléfono, por ejemplo, una galería y otras aplicaciones que están en el teléfono (no para abrir un enlace en Internet, sino una aplicación en el teléfono). ), tengo un código que permite controlar, por ejemplo, un navegador ubicado en la escena, mientras todo esto sucede en mi aplicación, pero aún quería saber si esto es posible, solo que no con las páginas en Internet. , pero con las propias aplicaciones en el smartphone... ¡Gracias de antemano!

Creo que depende del sistema operativo. Debería haber complementos que hagan lo que usted pide, y en el foro de Unity Answers también hay muchas discusiones sobre esto.

-NicknEma

27/03/2021 a las 20:03



------------------------------------

Bien, entonces para iniciar la aplicación de la cámara solo puedes usar 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);

    }

y para iniciar aplicaciones como viber, youtube puedes usar este código:

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

la variable del paquete es la identificación de la aplicación. ¡¡¡Que tengas un buen día!!! =)



------------------------------------

Para algunas aplicaciones (como YouTube, Facebook) puedes usar

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

pero esto solo funciona si conoces el enlace de la aplicación. Para las redes sociales, puedes probar los enlaces hasta que encuentres uno que abra la aplicación.

No intenté hacer esto con otras aplicaciones, pero si puedes obtener la URL de la aplicación (no es muy difícil), deberías poder hacerlo.

1

ohhh, puedo iniciar aplicaciones de Androidsin usar enlaces ni complementos de Android))) pero gracias por su respuesta))) también puede usar Vuplex 3D para iniciar la página web en su escena 3D =)))

- Esperanza1_

11 de mayo de 2021 a las 16:19

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare