안드로이드 시스템 부팅시에도 프로그램 항상 실행 (재실행)

[안드로이드 Android] 시스템 부팅시에 App(앱, 어플) 실행하기

카카오톡이나 시스템 어플처럼

안드로이드 폰을 부팅하면 자동으로 실행되는

앱들이 있을 겁니다.

 

즉, 별도의 앱목록에서 실행 선택없이

스마트폰이 시작되면 자동으로 여러분의 앱이 실행되도록 하는 거죠.

 

보통 채팅 프로그램에서 필요로 하는 기능이죠.

악용한다면 ....(-_-;;)

 

 

결과는 보여줄 것을 없네요.

 

그냥 이 앱을 설치하고

폰의 전원을 재 부팅하면

자동으로 앱이 실행되는 예제소스입니다.

 

다른 부분은 건드릴 것 없고요.

시스템의 Boot가 완료되었다는 신호(방송: Broadcast)

수신할 수 있는 BroadcastReceiver만 만들고

이를 메니페스트에 등록만 하면 완성입니다.

 

MainActivity는 건드릴 필요없이

 

BroadcastReceiver 클래스만 소스파일에 추가로 만들겠습니다.

 

본인 프로젝트의 src폴더>>패키지명

새로 Class파일을 만듭니다.

상속은 BroadcastReceiver를 받습니다.

 

완성된 Receiver 클래스 파일입니다.

설명은 주석 참조

 

 StartReceiver.java

public class StartReceiver extends BroadcastReceiver {

 

//BroadCast를 받앗을때 자동으로 호출되는 콜백 메소드

//첫번째 파라미터 : Context 컨텍스트

//두번째 파라미터 : BroadCast의 정보를 가지고 있는 Intent..

@Override

public void onReceive(Context context, Intent intent) {

  // TODO Auto-generated method stub

 

  //수신받은 방송(Broadcast)의 Action을 얻어오기

  //메니페스트 파일안에 이 Receiver에게 적용된 필터(Filter)의 Action만 받아오게 되어 있음.

  String action= intent.getAction();

 

  //수신된 action값이 시스템의 '부팅 완료'가 맞는지 확인..

  if( action.equals("android.intent.action.BOOT_COMPLETED") ){

  

   //맞다면...MainActivity 실행을 위한 Intent 생성..

   Intent i= new Intent(context, MainActivity.class);  

   //위에 만들어진 Intent에 의해 실행되는 Activity는 

   //액티비티 스택에서 새로운 Task로 Activity를 실행하도록 하라는 설정.

   i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

  

   //Intent에 설정된 Component(여기서는 MainActivity)를 실행

   context.startActivity(i);

  }

}

}

 

 

 BroadcastReceiver 는

안드로이드의 주요 4대 Component 중에 하나죠.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

이 Component 들은 반드시 메니페스트 파일에 등록을 해주어야

사용할 수 있다는 것은 다 알고 있을 거라 생각합니다.

 

위에 만든 StartReceiver를 메니페스트에 등록하고

수신 퍼미션도 받겠습니다.

 

메니페스트에서 추가한 부분은 굵은 글씨로 표기합니다.

 

 

 AndroidManifest.xml

 <?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.kitesoft.boottingapp"

    android:versionCode="1"

    android:versionName="1.0" >

 

    <uses-sdk

        android:minSdkVersion="14"

        android:targetSdkVersion="16" />

    

    <!-- Boot 될때 Booting 완료 방송(브로드캐스트)을 듣도록 퍼미션 획득 -->    

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

 

    <application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <activity

            android:name=".MainActivity"

            android:label="@string/app_name" >

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

 

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

        

        <receiver

            android:name=".StartReceiver"

            android:enabled="true"

            android:exported="false"

            android:label="STARTReceiver">

            

            <intent-filter >

                <action android:name="android.intent.action.BOOT_COMPLETED"/>                

            </intent-filter>

            

        </receiver>

        

    </application>

 

</manifest>

 

이제 시스템은 재 부팅하면 'Boot 완료' 방송(Broadcast)를 수신해서 App의 액티비티가 실행됩니다.

 

실제 채팅프로그램은 액티비티가 아니라 Service를 실행하겠죠.

 

 

 

[출처] http://kitesoft.tistory.com/79

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
33 [안드로이드 Android] 시스템 인텐트(Intent)를 이용한 전화걸기, 문자보내기, 이메일보내기 etc file 졸리운_곰 2016.03.05 1099
32 Intent를 사용한 첨부파일 이메일 보내기 file 졸리운_곰 2016.03.05 2117
31 android app gmail 보내기, 안드로이드 E-Mail 보내기 예제 따라하기 file 졸리운_곰 2016.03.05 267
30 android 실행시 class not found 졸리운_곰 2016.03.04 180
29 android 부팅과 함께 app 실행 시키기. 졸리운_곰 2016.03.02 168
28 [Android] 부팅시 서비스(Service) 재실행하기 (항상 실행) 졸리운_곰 2016.03.02 347
» 안드로이드 시스템 부팅시에도 프로그램 항상 실행 (재실행) 졸리운_곰 2016.03.02 705
26 App inventor 멀티스크린, 스크린 이동, 다중화면, file 졸리운_곰 2016.02.17 779
25 Communicating with Web APIs file 졸리운_곰 2016.02.17 1080
24 JSON data on the Android mobile with App Inventor 2 file 졸리운_곰 2016.02.17 364
23 REST clients for Java, MySQL and JSON Restful Web Services file 졸리운_곰 2016.01.11 223
22 안드로이드 개발 시 참고될 만한 자료 (android reading) 졸리운_곰 2015.11.11 4299
21 14 Great Android apps that are also open source file 졸리운_곰 2015.08.19 134
20 안드로이드 오픈소스 프로젝트 리스트 file 졸리운_곰 2015.08.19 432
19 ART(Android Runtime) file 졸리운_곰 2015.08.05 343
18 2014_CodeEngn_Conference_10_안드로이드에서도_한번_후킹을_해볼까_(Hooking_on_Android)_[정광운].pdf file 졸리운_곰 2015.06.16 248
17 안드로이드 커널 레벨 후킹하기 file 졸리운_곰 2015.06.16 1021
16 Android SDK 안드로이드 소스코드 난독화 file 졸리운_곰 2015.05.31 1254
15 안드로이드 프로그래밍 강좌 모음 졸리운_곰 2015.04.14 458
14 Nexus 기기 초기화 졸리운_곰 2015.04.10 295
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED