Unity安卓平台开发,启动app并传参
using UnityEngine;
using System;public class IntentReceiver : MonoBehaviour
{public bool isVR1;void Start(){Debug.LogError("app1111111111111111111111111");if (isVR1){LaunchAnotherApp("com.HappyMaster.DaKongJianVR2");}else{// 检查是否有传递的参数if (Application.isMobilePlatform){AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");AndroidJavaObject intent = currentActivity.Call<AndroidJavaObject>("getIntent");// 检查Intent是否包含额外的数据if (intent != null){// 从Intent中获取参数string sn = intent.Call<string>("getStringExtra", "sn");int group = intent.Call<int>("getIntExtra", "group", 0);string app = intent.Call<string>("getStringExtra", "app");string user = intent.Call<string>("getStringExtra", "user");int human = intent.Call<int>("getIntExtra", "human", 0);int times = intent.Call<int>("getIntExtra", "times", 0);// 在这里处理接收到的参数Debug.Log($"Received parameter: \n{sn}\n{group}\n{app}\n{user}\n{human}\n{times}");}}}}void LaunchAnotherApp(string packageName){try{AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");AndroidJavaObject pm = currentActivity.Call<AndroidJavaObject>("getPackageManager");AndroidJavaObject launchIntent = pm.Call<AndroidJavaObject>("getLaunchIntentForPackage", packageName);if (launchIntent == null){Debug.Log("无法获取 launch intent");return;}// 添加需要的 extras 和 flagslaunchIntent.Call<AndroidJavaObject>("putExtra", "sn", "PicoSN");launchIntent.Call<AndroidJavaObject>("putExtra", "group", 99);launchIntent.Call<AndroidJavaObject>("putExtra", "app", "一刀九九");launchIntent.Call<AndroidJavaObject>("putExtra", "user", "教主");launchIntent.Call<AndroidJavaObject>("putExtra", "human", 0);launchIntent.Call<AndroidJavaObject>("putExtra", "times", 2025);currentActivity.Call("startActivity", launchIntent);}catch (Exception e){Debug.LogError($"启动app失败: {e.Message}\n{e.StackTrace}");}}}
AndroidManifest 需要添加权限