赞
踩
首先将Unity项目导出为安卓工程,注意将构建平台选择为Android。
勾选Export Project便可。
用Android Studio打开安卓工程。
由于Unity构建的安卓工程Gradle版本较低,需要升级才行,否则安卓工程编译时报错。只需要按照Android Studio的弹窗提示升级便可。
点击Run selected steps,只需要升级一次至4.2.2便可。
注:这里由于之前升级过,不需要再次升级。
将launcher及unityLibrary的build.gradle中的SDK版本设为30或以上。
新建java类,并继承BroadcastReceiver,作为开机广播接收器。
注意,需要在unityLibrary的java目录下com.unity3d.player包名下创建。
只需要在unityLibrary上右键New-->Java Class便可。
示例代码如下:
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
-
- public class StartReceiver extends BroadcastReceiver {
- public StartReceiver() {
- }
-
- @Override
- public void onReceive(Context context, Intent intent) {
- //设备重启之后,打开应用
- if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
- Intent startIntent = new Intent(context, UnityPlayerActivity.class);
- //非常重要,如果缺少的话,程序将在启动时报错
- startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- //自启动APP(Activity)
- context.startActivity(startIntent);
- }
- }
- }
在unityLibrary的AndroidManifest.xml文件里添加。
注意,在manifest节点里添加。
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
在unityLibrary的AndroidManifest.xml文件里注册。
注意,在application节点里注册,与activity节点并列。
- <receiver
- android:name=".StartReceiver"
- android:enabled="true"
- android:exported="true">
- <intent-filter android:priority="1000">
- <action android:name="android.intent.action.BOOT_COMPLETED"></action>
-
- <category android:name="android.intent.category.HOME" />
- </intent-filter>
- </receiver
Build-->Build Bundle(s)/APK(s)-->Build APK(s)。
在安卓版本4.0以上的设备上,需要手动开启一遍程序,让设备信任程序后才能生效开启自启。
对于关闭系统权限的PICO4设备,此方法失效。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。