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

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

相关文章:

  • 使用 SseEmitter 实现 Spring Boot 后端的流式传输和前端的数据接收
  • 麒麟+ARM架构安装mysql8的操作指南
  • setting up Activiti BPMN Workflow Engine with Spring Boot
  • 霍夫曼编码详解
  • 2025Mybatis最新教程(三)
  • 【向量化模型如何私有化部署】一文说清原理、流程与最佳实践
  • KTH5772游戏手柄摇杆专用 3D 霍尔位置传感器
  • JavaWeb:前后端分离开发-登录认证
  • uniapp uni-id-co errCode“:“uni-id-captcha-required“,“errMsg“:“Captcha required
  • 《Offer来了:Java面试核心知识点精讲》大纲
  • 第十一部分:进程通信
  • 通过ca证书的方式设置允许远程访问Docker服务
  • Docker慢慢学
  • FreeCAD:开源世界的三维建模利器
  • 如何通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式(并进行了训练、推理)
  • 告别无效号码,精准营销从空号过滤开始
  • HarmonyOS NEXT应用开发-Notification Kit(用户通知服务)更多系统能力
  • 近端策略优化(PPO,Proximal Policy Optimization)
  • 第二章 进程管理
  • 在java中不同数据类型的运算与内存占用分析
  • 服装设计公司主要做什么/天津优化代理
  • 无锡企业网站制作公司有哪些/广东队对阵广州队
  • 智慧团建在线登录/电商关键词seo排名
  • 政府网站后缀的域名/一键优化清理
  • 做国际贸易都用什么网站/网络营销的企业有哪些
  • 企业做网站哪个最好/seo教程优化