주니어개발자_ฅʕ•̫͡•ʔฅ

Android app을 앱 런처로 만들기 (홈 만들기) 본문

AndroidStudio

Android app을 앱 런처로 만들기 (홈 만들기)

뚜비뚜밥_98 2021. 7. 23. 17:30

태블릿이나 핸드폰을 켰을때

직접 만든 앱이 홈화면으로 지정되어 켜졌으면 해서 알아봤다.

 

먼저 앱 런처를 만들기 위해서 참고한 사이트

https://beomseok95.tistory.com/134

 

안드로이드 앱런처 만들기

안드로이드 앱런처 만들기 안드로이드 런처(Launcher)란 안드로이드 OS환경에서 홈 화면의 인터페이스를 관리하는 하나의 앱이라고 정의할 수 있습니다. 앱런처를 만드는방법은 간단합니다 실행

beomseok95.tistory.com

앱런처 만들기는 Manifest만 건들어주면 되는데 생각보다 간단하다.

먼저 manifast에서 <intent-filter> 안에 두가지

<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.HOME"/>

 

그리고 처음 실행되는 액티비티에 "singleTask" 추가

본인은 MainActivity가 처음 실행되는 클래스이므로 밑에와 같이 작성

<activity android:name=".MainActivity"
android:launchMode="singleTask">

 

위의 내용을 모두 넣었을때의 소스코드

 <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.Design.NoActionBar">
        
        <!--      실행되는 첫 액티비티에 android:launchMode="singleTask" 추가    -->
        <activity android:name=".MainActivity"
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <!--        홈 런처 만들때 필요한 선언        -->
                <category android:name="android.intent.category.DEFAULT"/>
                <category android:name="android.intent.category.HOME"/>
                <!--        홈 런처 만들때 필요한 선언        -->

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

 

홈 앱을 만드는 설정은 벌써 끝났다.

 

나는 여기에 살짝 추가하여

안드로이드 폰에 있는 뒤로가기, 홈, 메뉴키를 눌러도 이벤트가 없도록 막았다.

 

참고한 사이트는 ↓

http://solveprogrammingproblem.blogspot.com/2018/12/blog-post_8.html

 

[안드로이드] 홈키, 백버튼, 메뉴 버튼 막는법(임시방편)

//뒤로가기 키 막기 @Override public void onBackPressed () { Toast. makeText ( this, "back키 사용불가." , Toast. LENGTH_SHORT ).show() ;...

solveprogrammingproblem.blogspot.com

 

메인 화면으로 사용되는 클래스에서 작성

onCreate 메소드 밑에 @Override하여 onBackPressed, onPause, onStop메소드를 추가하여

밑에와 같이 작성한다.

 

본인은 참고한 사이트에서 했던 방식을 그대로 이용하였는데

작동하는데 무리는 없었다.

 

1. 뒤로가기 버튼 막기

//뒤로가기 버튼 막기
    @Override
    public void onBackPressed() {
        Toast.makeText(this, "뒤로가기 클릭", Toast.LENGTH_SHORT).show();
        return;
    }

 

2. 홈 버튼 막기

   // 홈 버튼 막기기
   @Override
    public void onStop(){
        super.onStop();
        /** 홈 버튼을 눌렀을때,
          * 자기자신 클래스를 다시 호출하여 홈버튼이 작동하지 않는 것 처럼 보임
          **/
        startActivity(new Intent(this, MainActivity.class));
        Toast.makeText(this, "홈키 클릭", Toast.LENGTH_SHORT).show();
 
    }

 

3. 메뉴 버튼 막기

 //메뉴 버튼 막기
    protected void onPause(){
        super.onPause();
        
        /** 메뉴키를 누르면 onPause가 작동하는데 거기에 현재 액티비티를
          * 맨 앞으로(최상위)로 스택위치를 바꿔버리는 함수라고 한다.
          * 그래서 누르면 현재 액티비티가 나오게 하는 간접적인 방법
          **/
        
        ActivityManager activityManager = (ActivityManager) getApplicationContext()
                .getSystemService(Context.ACTIVITY_SERVICE);
                
        activityManager.moveTaskToFront(getTaskId(),0);
        Toast.makeText(this, "메뉴키 클릭",Toast.LENGTH_SHORT).show();
    }

 

홈앱에 다른 앱을 추가하고 싶다면 밑에 주소 클릭!

홈 앱에 앱 추가하기

 

Android 앱 런처 만들기2 (홈 만들기, 앱 추가하기)

홈 앱에 내가 원하는 앱을 선택하여 추가하고자 한다. ↓↓내가 참고한 사이트↓↓ https://code.tutsplus.com/tutorials/build-a-custom-launcher-on-android--cms-21358 Build a Custom Launcher on Android Int..

toubi-tobap.tistory.com

홈앱에 다른 앱을 추가하고 싶다면 밑에 주소 클릭!

홈 앱에 추가한 앱 유지하기

 

Android 앱 런처 만들기3 (sqlite이용, 내부저장소에 앱 정보 저장)

오늘은 저번에 만들었던 런처 앱에서 앱을 추가한 뒤 스마트폰의 전원을 껐다가 켜도 그 정보가 유지될 수 있도록 앱 이름과 앱 위치명, 앱 로고를 내부 저장소에 저장하려고 한다 내부 저장소

toubi-tobap.tistory.com