如何通过AndroidStudio二次开发Unity项目,实现开机自启动
作者:互联网
本章主要讲解怎么将unity项目导入Androidstudio进行二次开发以及实现开机自启动功能。在这里,Unity进行android开发的对于sdk以及jdk基本设置就不讲解了,直接来看怎么导出项目。
一 Unity编辑器下导出gradle工程
(一)导出项目时,需要注意下图的内容,File–>Build Settings–>Player Settings–>Other Settings
(二)接下来,按照如下图设置,导出项目到指定路径。
二 在Android Studio中打开Multidex包
(一)首先,打开Android Studio,选择下面的导入方式,将刚刚在Unity编辑器下导出的gradle导入。
(二)
(三)
好了,现在就可以进行真机编译运行了。
三 app实现开机自启动
开机会发出一个广播,过滤到这个广播就可以做你想干的事情了,开机一般是锁屏状态,还copy了自动解锁屏幕,会有4秒左右的延迟才启动
(一)创建广播类
在java文件夹下的包名文件下新建BootCompletedReceiver类
package com.YSGS.DOUTU;
import android.annotation.SuppressLint;
import android.app.KeyguardManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.PowerManager;
import android.util.Log;
public class BootCompletedReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
PowerManager pm=(PowerManager)context.getSystemService(Context.POWER_SERVICE);
@SuppressLint("InvalidWakeLockTag") PowerManager.WakeLock wl=pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP|PowerManager.SCREEN_BRIGHT_WAKE_LOCK,"StartupReceiver");
wl.acquire();
KeyguardManager km=(KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE);
KeyguardManager.KeyguardLock kl = km.newKeyguardLock("StartupReceiver");
if (intent.getAction().equals(("android.intent.action.BOOT_COMPLETED")))
{
Log.e("TAG", "onReceive: 开机启动");
//开机启动
Intent mainIntent = new Intent(context, UnityPlayerActivity.class);
//在BroadcastReceiver中显示Activity,必须要设置FLAG_ACTIVITY_NEW_TASK标志
mainIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(mainIntent);
}
}
}
(二)添加权限和过滤器
在mainifests下的AndroidManifest.xml文件下,在application之前添加
<!--//允许程序禁用键盘锁-->
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<!--允许一个程序接收到 ACTION_BOOT_COMPLETED广播在系统完成启动-->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!--允许使用PowerManager的 WakeLocks保持进程在休眠时从屏幕消失-->
<uses-permission android:name="android.permission.WAKE_LOCK" />
注册权限,然后在activity后面添加
<receiver android:enabled="true" android:exported="true" android:name="com.YSGS.DOUTU.BootCompletedReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
开机广播过滤。
好了,现在可以真机测试了。
标签:PowerManager,开机,二次开发,Unity,Intent,context,自启动,import,android 来源: https://blog.csdn.net/qq_25542475/article/details/88552235