본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] Launcher( HomeScreen ) 에 shortcut( 바로가기 ) 생성하기

by 돼지왕 왕돼지 2013. 6. 24.
반응형

 Launcher( HomeScreen ) 에 Shortcut( 바로가기 ) 생성하기

 

폰을 처음켰을 때 나오는 어플.

소위 말하는 HomeScreen 이라 부르는 녀석의 본래 이름은 Launcher ( 런처 ) 이다.


런처에 Shortcut 을 추가하는 코드를 설명한다.



android launcher( homescreen ). There are several shortcut icons at the below part.안드로이드 런처( 홈스크린 ). 저 아이콘들이 shortcut 이다.




Manifest 에 권한설정


<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />


저 권한이 있어야만, 해당 앱에서 Launcher 에 Shortcut 을 설치( Install ) 하라는 명령을 내릴 수 있다.

참고로, 일반적인 규칙을 따른 런처는 저 INSTALL_SHORTCUT 을 구현했겠지만,

간혹가다 개인이 만든 런처의 경우 이 녀석을 구현 안 하는 경우도 있다.


Shortcut 추가를 구현하지 않은 Custom Launcher 를 사용하면서, 

"이 코드를 따라했는데 왜 무작정 안돼?"

라고 이야기하며 성질부려도 나는 모른다.

이는 런처 개발자한테 따져라.









Shortcut 추가하는 코드


Shortcut 추가는 Launcher 에게 Broadcast 를 날림으로 실행한다.

이 때 Intent 는 2개가 사용된다.


1개는 새로 추가된 Shortcut 을 Click ( Touch ) 했을 때 

수행될 Intent 를 정의하는 것이고,


다른 하나는 새로 추가될 Shortcut 의 이름, 아이콘, 위에서 정의한 Intent 를 담아서 Launcher 에게

Shortcut 추가를 요청하는 Broadcast 용 Intent 이다.


코드를 보는 것이 이해가 더 빠르겠다.


private void addShortcut(){

Intent shortcutIntent = new Intent( this, FortuneTelling.class );

shortcutIntent.setAction( Intent.ACTION_MAIN );

Intent shortcutAddIntent = new Intent( ACTION_INSTALL_SHORTCUT );

shortcutAddIntent.putExtra( Intent.EXTRA_SHORTCUT_NAME, getResources().getString( R.string.app_name ) );

shortcutAddIntent.putExtra( Intent.EXTRA_SHORTCUT_ICON_RESOURCE, 

                                              Intent.ShortcutIconResource.fromContext( this, R.drawable.icon ) );

shortcutAddIntent.putExtra( KEY_SHORTCUT_DUPLICATE, false );

shortcutAddIntent.putExtra( Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent );

sendBroadcast( shortcutAddIntent );

}








반응형

댓글