csharp
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 和 flags
launchIntent.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 需要添加权限