Unity 模拟点击Home键和启动其他app
2024-10-01 16:43:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine; public class NewBehaviourScript : MonoBehaviour { private AndroidJavaObject currentActivity{ get{
return new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
} }
//启动应用
public void StartApp(string packageName,bool isExitThisApp){
if(Application.platform != RuntimePlatform.Android)
return;
AndroidJavaObject launch = currentActivity.Call<AndroidJavaObject>("getPackageManager").Call<AndroidJavaObject>("getLaunchIntentForPackage",packageName);
currentActivity.Call("startActivity",launch);
if(isExitThisApp){
Application.Quit();
}
}
//模拟点击Home键
void GoHome1()
{
string ACTION_MAIN = "android.intent.action.MAIN";
int FLAG_ACTIVITY_NEW_TASK = ;
string CATEGORY_HOME = "android.intent.category.HOME"; AndroidJavaObject intent=new AndroidJavaObject("android.content.Intent",ACTION_MAIN);
intent.Call<AndroidJavaObject> ("setFlags",FLAG_ACTIVITY_NEW_TASK);
intent.Call<AndroidJavaObject> ("addCategory", CATEGORY_HOME);
currentActivity.Call("startActivity",intent);
}
//模拟点击Home键
void GoHome2()
{
AndroidJavaClass Intent = new AndroidJavaClass ("android.content.Intent");
AndroidJavaObject intent=new AndroidJavaObject("android.content.Intent",Intent.GetStatic<AndroidJavaObject>("ACTION_MAIN")); // intent.Call<AndroidJavaObject> ("setFlags",Intent.GetStatic<AndroidJavaObject> ("FLAG_ACTIVITY_NEW_TASK"));//不知道什么原因,这样写居然报错,
int FLAG_ACTIVITY_NEW_TASK = Intent.GetStatic<int> ("FLAG_ACTIVITY_NEW_TASK");//非得需要用个变量接收一下,而且用AndroidJavaObject接收也报错,坑
intent.Call<AndroidJavaObject> ("setFlags",FLAG_ACTIVITY_NEW_TASK); intent.Call<AndroidJavaObject> ("addCategory",Intent.GetStatic<AndroidJavaObject> ("CATEGORY_HOME"));
currentActivity.Call("startActivity",intent);
} void Update()
{
if (Input.GetMouseButtonDown()) {
// GoHome1 ();
GoHome2 ();
}
} }
已上代码不需要引用任何 jar 包,直接可以用
是通过以下java代码变形而来的
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
最新文章
- Python实现简单的记账本功能
- android sdk manager 代理设置(送给牛逼的)
- SpriteKit所有的类
- HTML5简单入门系列(五)
- .NET设计模式系列文章
- Linq 中的Select事例
- PHP操作Mysql中间BLOB场
- DL4NLP——词表示模型(一)表示学习;syntagmatic与paradigmatic两类模型;基于矩阵的LSA和GloVe
- C#委托
- Java 面试知识点解析(六)——数据库篇
- java自动化-关键字驱动在junit接口自动化的应用
- HTML&;javaSkcript&;CSS&;jQuery&;ajax(八)
- python对文件操作
- Alpha 冲刺报告(5/10)
- flask中的简单的前端写入
- 一款表达谱数据分析的神器--CCLE--转载
- sublime text3 如何在多行前面快速插入序号
- Android studio如何导出.so库(NDK开发入门)
- HBase in Action前三章笔记
- MLlib1.6指南笔记
热门文章
- (转载)7个去伪存真的JavaScript面试题
- H5中 input消除默认,取消在手机上的点击高亮效果
- MySQL的concat以及group_concat的用法
- How Javascript works (Javascript工作原理) (三) 内存管理及如何处理 4 类常见的内存泄漏问题
- iOS开发——循环遍历的比较
- 【转载】CPU架构、指令集与指令集体系结构(ISA)
- 【Paper Reading】Improved Textured Networks: Maximizing quality and diversity in Feed-Forward Stylization and Texture Synthesis
- 使用Jmeter工具对http接口进行压力测试
- 如何配置任意目录下Web应用程序
- UI布局【转】