其实就是想实现一个android上开机自启由Unity开发的app,app退出后还能回到桌面的功能。其他地方搜到的方法多是说在AndroidManifest中定义广播的方法,可能有什么地方设置不对,反正我照着做了不是报错就是无效…最后通过曲线救国的方法实现了!

Unity上的设置

设置返回按钮触发以下方法:(launcher为桌面app PS:通过adb shell pm list packages找到当前安装的所有app )

    public void LoadLauncher(){_AndroidCls = new AndroidJavaClass("com.unity3d.player.UnityPlayer");_AndroidObj = _AndroidCls.GetStatic<AndroidJavaObject>("currentActivity");if(_AndroidObj!=null)_AndroidObj.Call("DoActiveApp", "com.realmax.launcher");}

调用的DoActiveApp方法将在Android Studio里设置。

Unity发布 导出工程文件

Android Studio打开Unity导出的工程 新建MainActivity

将下面一段拷贝进去

package com.RMSR.projectSdk1;//当前包名import android.graphics.PixelFormat;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.content.pm.PackageManager;
import android.widget.Toast;
import android.content.pm.PackageInfo;
import android.content.ComponentName;
import android.content.Intent;public class MainActivity extends com.realm.istarcontrolunity.TempClass{//继承自本来要运行的类@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);}public void DoActiveApp(String packageName){PackageManager packageManager = getPackageManager();if (checkAppExist(packageName)) {//Intent intent = packageManager.getLaunchIntentForPackage(packageName);//startActivity(intent);Intent intent = new Intent();ComponentName cn = new ComponentName("com.realmax.launcher", "com.realm.androidsystemtools.UnityMainActivity");//激活指定app的activity,这里是用于返回桌面intent.setComponent(cn);startActivity(intent);this.finish();//激活其他App后 关闭当前软件的运行} else {Toast.makeText(MainActivity.this, packageName + "no exist", Toast.LENGTH_SHORT).show();}}private boolean checkAppExist(String packageName) {//检测是否存在要打开的appPackageInfo packageInfo = null;try {packageInfo = getPackageManager().getPackageInfo(packageName, 0);} catch (PackageManager.NameNotFoundException e) {e.printStackTrace();}return packageInfo != null;}
}

修改AndroidManifest

<application android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:isGame="true" android:banner="@drawable/app_banner"><activity android:name="com.RMSR.projectSdk1.MainActivity"//修改为运行新创建的MainActivity android:screenOrientation="landscape" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /><category android:name="android.intent.category.LEANBACK_LAUNCHER" /><category android:name="android.intent.category.DEFAULT" />//这两段将app设为桌面,开机自启<category android:name="android.intent.category.HOME" /></intent-filter></activity>
//声明想要激活的Activity,在有的版本里可能报错<activity android:name="com.realm.androidsystemtools.UnityMainActivity"></activity><meta-data android:name="unity.build-id" android:value="006c36fd-b3cd-446d-85db-9a4b6f124202" /><meta-data android:name="unity.splash-mode" android:value="0" /><meta-data android:name="unity.splash-enable" android:value="True" /><meta-data android:name="android.max_aspect" android:value="2.1" />
</application>

参考:
Android 利用launcher(安卓系统UI桌面)实现开机自启动App
https://blog.csdn.net/qq_38001118/article/details/80675646
Unity调用SDK之Android唤起其他App
https://blog.csdn.net/minami_takumi/article/details/81479315
Android通过App启动另一个APP
https://www.jianshu.com/p/42ae7066f8f3
Android 中几种优雅的退出APP方式介绍
https://blog.csdn.net/YZJ_0722/article/details/80594485
利用Android studio的adb命令删除app应用
https://www.jianshu.com/p/a18f72acc9e0

Unity3dAndroid Studio实现开机自启App以及激活其他App相关推荐

  1. Unity3d实现开机自启App

    一.参考: 1.Unity3d&Android Studio实现开机自启App以及激活其他App https://blog.csdn.net/weixin_42261356/article/d ...

  2. Supervisor进程管理开机自启

    这几天在用supervisor管理爬虫和Flask, 每次都记不住命令,花点时间记录下. supervisor是一个进程管理工具,用来启动.停止.重启和监测进程.我用这个东西主要用来监测爬虫和Flas ...

  3. Linux云服务器安装Redis并设置远程连接设置开机自启

    1.下载redis linux安装版(redis最新版:https://redis.io/download) wget http://download.redis.io/releases/redis- ...

  4. Android开机自启监听网络改变源码

    先看下主页面代码 mainactivity.java package cn.xiayiye.networkchange;import android.app.Activity; import andr ...

  5. Window设置开机自启软件的几种方式

    开机无密码 1.WIN+R或者在运行中弹出窗口中输入Control Userpasswords2命令, 2.运行框中输入netplwiz后点击确定按钮(用户账户) 1. 最简单的方式 C:\Users ...

  6. win配置pm2开机自启node项目

    pm2类似于nodemon,但是功能比nodemon更丰富 1.全局安装pm2,如果你的系统提前没有安装node环境,那么你可以参考博文:https://blog.csdn.net/weixin_46 ...

  7. 使用VS2017将我的c++项目打包成安装程序,并设置开机自启,卸载,图标等

    大体上打包分为两步 目录 一.将编译后的exe可执行文件及其各种依赖dll.lib.图标.配置文件等先打包放到一个目录中 (1)dumpbin指令查看可执行文件的dll依赖包 (2)windeploy ...

  8. linux 设置开机自启

    现在我会两种方式开机自启: 1. /etc/rc.local (base) [jianming_ge@localhost ~]$ cat /etc/rc.local #!/bin/bash # THI ...

  9. linux开机自启服务

    前言:最近,有一个项目需要用到开机自动启动机房,所以就研究了一下 1.把node的快捷方式放在放在/usr/bin/(环境变量)下面,所有的命令默认是从这里面进行调用的 ln -s /home/too ...

最新文章

  1. HDFS配置Kerberos
  2. mysql安装10045_mysql数据库5.6.45安装后的配置(离线安装包版)
  3. linux脚本开机挂载,案例七:shell实现开机自动挂载本地YUM仓库程序
  4. 和aes相比较有哪些特点_“黑枸杞”和“红枸杞”相比较,功效方面究竟存在哪些差别?...
  5. 打开是什么样子的图片_情侣头像 | 无论是什么样子的你 我都好喜欢
  6. StringBuilder和Char[]在平台调用中的差异
  7. Spark之GraphX
  8. php 发帖代码,我的论坛源代码(四)_php
  9. ftk学习记(button篇)
  10. 配置两个Hadoop集群Kerberos认证跨域互信(两个集群互通)
  11. js 基于函数伪造的方式实现继承
  12. 百度地图API的IP定位城市和浏览器定位
  13. arduino蓝牙通讯代码_arduino蓝牙通讯
  14. MATLAB三元条件运算符,C++ ?:条件运算符(三目运算符)用法详解
  15. windows 安装 IDES
  16. 人在外省想在老家装监控,在手机上能看,要什么条件和材料?
  17. Python项目通用的目录结构总结
  18. XP计算机管理员账户隐藏了怎么办,xp administrator隐藏如何找回解决方案
  19. matlab中文乱码问题
  20. 模块说和神经网络学说_2021考研312统考心理学知识:大脑皮层与脑功能学说

热门文章

  1. rails集成devise
  2. 机器学习-训练了一个高效快速识别身份证正面关键信息的模型
  3. @ConfigurationProperties(prefix = )异常报错解决方案:
  4. 自制滑杆slider
  5. 微博吃瓜总是晚一步才知道,程序员直接写了一个热搜提醒工具
  6. Luogu P4147 玉蟾宫
  7. xcode 真机调试无法选择对应设备 “ineligible devices“
  8. EDK2-UEFI开发
  9. 联盟显示服务器异常,玩英雄联盟ping值异常,我们如何检测网络问题,还是服务器?...
  10. frps实现内网穿透