Unity3D

안드로이드에서 부팅 후 유니티 앱 자동 실행 되게 하기.

DragonTory 2020. 6. 11. 10:06
반응형

 

<안드로이드에서 부팅 후 유니티 앱 자동 실행 되게 하기>

 

1. 부팅 후에 실행될 앱을 만든다. (Android Studio)

2. 부팅 완료 메시지를 받아서서 유니티 앱을 실행 시킨다.

 

우선 안드로이드 스튜디오에서 빈 액티비티 프로젝트를 하나 만들고

 

1. AndroidManifest.xml에 다음 퍼미션을 추가 한다. 

 

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xx.autorun" android:installLocation="internalOnly">

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

메시지를 받을 리시버를 설정

<receiver
  android:name=".Autorun"
  android:enabled="true"
  android:exported="false"
  android:label="BootReceiver"
  android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
  <intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
    <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
    <action android:name="android.intent.action.QUICKBOOT_POWERON" />
    <action android:name="android.intent.action.REBOOT"/>
     <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>
</receiver>

 

“파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음"

 

2. 리시버 자바 클래스 생성

 

New -> Other -> Broadcast Receiver -> Autorun 생성

public class Autorun extends BroadcastReceiver {

@Override
public void onReceive(final Context context, Intent intent) {

try
{
  ComponentName compName = new ComponentName("com.xx.YourPackageName","com.unity3d.player.UnityPlayerActivity");
  Intent newIntent = new Intent(Intent.ACTION_MAIN);
  newIntent.addCategory(Intent.CATEGORY_LAUNCHER);
  newIntent.setComponent(compName);

  newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  context.startActivity(newIntent);
}
catch(Exception ex) {
  Toast.makeText(context, ex.getMessage(), Toast.LENGTH_LONG).show();
}

 

3. 안드로이드에 위의 앱을 설치 하고 전원을 껐다 켜면 부팅 완료 후 원하는 유니티 앱을 자동 실행 시킬 수 있다.

 

*주의) Android 9.0( Pie )까지는 위와 같은 방식으로 앱을 자동 실행 시킬 수 있으나 Android 10 ( Q )에서는 자동 실행 안 됨.

 

 

반응형