using UnityEngine; using UnityEngine.SceneManagement; public class ReadParameters : MonoBehaviour { /* val intent = packageManager.getLaunchIntentForPackage("com.myrobot.RobotIngles") intent?.putExtra("screen", "conversation") startActivity(intent) ou val intent = Intent(Intent.ACTION_VIEW, Uri.parse("myrobotingles://open?screen=conversation")) startActivity(intent) ou adb shell am start -n com.myrobot.RobotIngles/com.unity3d.player.UnityPlayerActivity --es screen conversation */ LoginAPI loginApi; static string screen = ""; void Start() { loginApi = GetComponent(); DontDestroyOnLoad(gameObject); screen = GetScreenFromAndroidIntent(); if (PlayerPrefs.GetInt("Logado") == 1) StartCoroutine(loginApi.HttpLogin()); else LoadScene(); } public static void LoadScene() { if (!string.IsNullOrEmpty(screen)) { PlayerPrefs.SetString("Cena", screen); } if (PlayerPrefs.GetInt("Logado") == 0) SceneManager.LoadScene("Login"); //else if (screen == "conversation") // SceneManager.LoadScene("FaceConversation"); else SceneManager.LoadScene("SampleScene"); } string GetScreenFromAndroidIntent() { #if UNITY_ANDROID && !UNITY_EDITOR try { using (var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer")) using (var activity = unityPlayer.GetStatic("currentActivity")) using (var intent = activity.Call("getIntent")) { // 1) Deep link: Intent.getData() var data = intent.Call("getData"); if (data != null) { string url = data.Call("toString"); // Ex: meuapp://open?screen=conversation var parsed = AndroidUriParseQuery(url, "screen"); if (!string.IsNullOrEmpty(parsed)) return parsed; } // 2) Extras: intent.getStringExtra("screen") string extra = intent.Call("getStringExtra", "screen"); if (!string.IsNullOrEmpty(extra)) return extra; } } catch (System.Exception e) { Debug.Log("Erro lendo Intent: " + e.Message); } #endif return null; } // Parsing simples sem libs string AndroidUriParseQuery(string url, string key) { int idx = url.IndexOf('?'); if (idx < 0) return null; string query = url.Substring(idx + 1); string[] parts = query.Split('&'); foreach (var p in parts) { var kv = p.Split('='); if (kv.Length == 2 && kv[0] == key) return System.Uri.UnescapeDataString(kv[1]); } return null; } }