当前位置: 首页 > article >正文

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 需要添加权限

http://www.lryc.cn/news/2402043.html

相关文章:

  • jdbcTemplate.query备忘录
  • 如何搭建Z-Blog PHP版本:详细指南
  • Docker 常用命令详解
  • uniapp uni-id-co errCode“:“uni-id-captcha-required“,“errMsg“:“Captcha required
  • Github Copilot新特性:Copilot Spaces-成为某个主题的专家
  • React 第五十三节 Router中 useRouteError 的使用详解和案例分析
  • 12分钟讲解主流React库
  • 《doubao-lite-32k 模型缓存机制使用指南》
  • 攻防世界-XCTF-Web安全最佳刷题路线
  • t021-高校物品捐赠管理系统【包含源码材料!!!!】
  • 设计模式——面向对象设计六大原则
  • Python制作史莱姆桌面宠物!可爱的
  • React hook之userReducer
  • Dify源码教程:账户和密码传递分析
  • 如果科技足够发达,是否还需要维持自然系统(例如生物多样性)中那种‘冗余’和‘多样性’,还是可以只保留最优解?
  • 数据分析图表类型及其应用场景
  • 第四十二天打卡
  • Github 2025-06-03Python开源项目日报 Top10
  • Vim查看文件十六进制方法
  • 电脑提示dll文件缺失怎么办 dll修复方法
  • 【自动思考记忆系统】demo (Java版)
  • 【AAOS】【源码分析】用户管理(二)-- 整体架构
  • 51单片机基础部分——独立按键检测
  • 【Docker管理工具】部署Docker可视化管理面板Dpanel
  • Github 2025-06-02 开源项目周报 Top11
  • springboot实现查询学生
  • 深入解析C++五大常用设计模式:原理、实现与应用场景
  • 标识符Symbol和迭代器的实现
  • Appium+python自动化(九)- 定位元素工具
  • Unity 中实现可翻页的 PageView