• 1나루토매니아
  • 2뱅이
  • 3푸타코타
  • 4완벽그자체
  • 5해삼
  • 1뱅이
  • 2나루토매니아
  • 3알짜배기
  • 4뱅이
  • 5빙그레우유
launcherShortCut (바로가기 아이콘)입니다.
연속출석 :
1일 랭킹 : 399위 중장7
45%
45% (1541 /3455)
  • 댓글 0 |
  • 추천 1 |
  • 조회 3699 |
  • 2012-08-10 (금) 17:30
    LauncherShortCut은 API_DEMos에 전반적인 소스가 나와 있습니다만
    인텐트라던지 설명이 약간 부족하더군요.
    또한 여러개의 액티비티 중 특정 액티비티에 대해 shortcut을 추가하는 법도 없고,
    단순히 하나의 액티비티에서만 처리를 하더군요.
    ---------------
    이번에 요골 다뤄보면서 한가지 의문점이 생겼었습니다.
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    인텐트 필터에 보면 이 두줄의 구문을 자주 보셨을 텐데.
    이 인텐트 필터의 역활은 앱이 실행 되 었을시에 가장 먼저 보여주는 액티비티다.
    라는걸 명시해주는거죠.
    하지만 APIDEMOS의 메니페스트를 보면, 패키자가 다르긴하나 하나의 앱임에도 불구하고
    위의 인텐트 필터가 거의 모든 샘플마다 존재하였습니다.
    이건 다시말해서 위의 인텐트 필터의 조건은 기본적으로 동일하나,
    반드시 앱에 하나만 존재해야되는 것은 아니고, 각 액티비티가 위의 필터를 가질 수 있다라는
    결론이 나오더군요.
    한 예로 카카오톡의 경우 아이디를 클릭해서 바탕화면으로 뺄 수 있는데,
    이 때, 숏컷을 통한 실행은 아이디를 클릭했던 액티비티가 main텝으로 설정 됩니다.
    아래의 소스는 숏컷을 생성하고 숏컷에 실행인텐트등의 정보를 실어 보내줍니다.
    private void addShortcut() {
    private void addShortcut() {
    //이 부분이 제일 중요합니다. 숏컷으로 생성된 아이콘이 어느 필터를 따라
    가느냐를 결정해줍니다. 전화의 경우 ACTION_CALL등으로 설정하시면 됩니다.

    Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);

    shortcutIntent.putExtra("cName", "코리아");
    //이 부분은 빼셔도 별 의미는 없습니다. (putextra로 실어보내지는 것은 아이콘을 통해
    실행된 액티비티에 데이터를 실어보내주는 역활을 해줍니다.)
    shortcutIntent.putExtra(EXTRA_KEY, "ApiDemos Provided This Shortcut");
    // 맨위의 ACTION_MAIN과 마찬가지로 필터쪽인데, 런처는 실행. DEFAULT는 기본값을
    가집니다. 보통 아이콘을 통해서 액티비티를 실행하므로 LAUNCHER를 해주시면 됩니다.
    shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER);
    // 이건 실행될 액티비티의 클래스와 이름을 가져오는 부분입니다.
    이 소스를 실행하는 액티비티의 이름을 가져가며, 임의로 정하실 수 있습니다.
    또한 컨텍스트는 특별한 경우가 아니면 this로 처리해주시면됩니다.
    shortcutIntent.setClassName(this, this.getClass().getName());
    // 아이콘을 통해 실행하면 기존에 켜져 있던 원래 앱을 꺼버리거나 재시작함.
    shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|
    Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

    Intent intent = new Intent();
    // 위에서 인텐트에 담은 정보들을 이 인텐트에 실어 보냅니다.
    // 두번째의 NAME은 아이콘의 "이름"이 됩니다.
    // 세번째는 바탕화면에 적용될 아이콘을 정의 합니다. 앱 내부의 이미지를 가져오므로
    반드시 아래와 같은 방법으로 정의 하셔야 됩니다.
    // 마지막은 아이콘을 생성합니다.
    // setResult/sendBroadcast의 경우 이 아이콘을 만들어 보내는 액티비티에 shortcutintent에 실어보낸 정보를 다시받아올때 사용하시면 됩니다.
    intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
    intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "코리아");
    intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
    Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher));
    intent.putExtra("duplicate", false);
    intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");

    sendBroadcast(intent);
    setResult(RESULT_OK,intent);
    }
    // 엑티비티 alias는 타겟 엑티비티를 실행해주는 방식입니다. 단, 타겟 엑티비티는
    상위에서 메니페스트에 정의가 되어 잇어야 됩니다.
    메니페스트에선 Action.MAIN필터를 모든 엑티비티에 사용이 가능 합니다.
    맨처음 실행되는 메인 엑티비티가 아닌 아이콘을 통해서 다른 엑티비티를 띄우게 하고
    싶으시면,
    alias를 통해 대상 엑티비티를 잡아주고, 대상 엑티비티는 인텐트 필터로 메인과 런처를
    넣어줍니다.
    <activity-alias android:name=".CreateShortcuts"
    android:targetActivity=".TestshortCut"
    >
    <intent-filter>
    <action android:name="android.intent.action.CREATE_SHORTCUT" />
    <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    </activity-alias>
    //퍼미션은 설치/삭제 두종류가 있습니다. 지금까지 한것은 설치뿐이고 삭제를 하지
    않았는데. 바탕화면에 만들어지다보니 앱에서 삭제하는 빈도보다 밖에서 지우는 빈도가
    더 높기 때문에 따로 언급하지 않습니다. 설치와 삭제모두 퍼미션이 필요하고
    아래는 설치 퍼미션입니다.
    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>


    [이 게시물은 더어플님에 의해 2016-07-12 15:23:56 개발 꿀팁에서 복사 됨]
    댓글을 작성하시려면 로그인을 하셔야지만 작성가능합니다. [로그인하기] [회원가입하기]
    공지글 이거슨 꿀팁!! 작성 가이드 v1.1 (2013-11-13) +174 더어플 13/03/12 135652
    게임어플 개발자분들을 위한 게임창조오디션 3회 공모 중입니다.
    게임어플 개발자분들을 위한 게임창조오디션 3회 공모 …
    8년전
    h.5824
    v.0
    카르페의블
    단말기에 해당 어플이 설치되었는지 확인하는 방법
    단말기에 해당 어플이 설치되었는지 확인하는 방법 (2)
    8년전
    h.9228
    v.2
    철권
    안드로이드 크래쉬 로그를 쉽게 확인하는 방법
    안드로이드 크래쉬 로그를 쉽게 확인하는 방법 (1)
    8년전
    h.8822
    v.2
    철권
    안드로이드 유용한 라이브러리 모음!
    안드로이드 유용한 라이브러리 모음! (1)
    8년전
    h.6746
    v.2
    철권
    Android Studio (안드로이드 스튜디오) 단축키 모음!
    Android Studio (안드로이드 스튜디오) 단축키 모음! (1)
    8년전
    h.8283
    v.2
    철권
    안드로이드 기초 프로그램 1개 실습 및 작성 방법의 설명
    안드로이드 기초 프로그램 1개 실습 및 작성 방법의 설명
    11년전
    h.4249
    v.1
    GNCkorea
    최고의 웹앱 개발 프레임워크
    최고의 웹앱 개발 프레임워크
    11년전
    h.4436
    v.1
    GNCkorea
    안드로이드 해상도별 좌표+ 이미지 크기 수정하기(변종디스플레이는 적용x)
    안드로이드 해상도별 좌표+ 이미지 크기 수정하기(변종…
    11년전
    h.13203
    v.1
    GNCkorea
    폰의 하드웨어 제어관련 혹은 하드웨어접근관련 앱 제작시.
    폰의 하드웨어 제어관련 혹은 하드웨어접근관련 앱 제작…
    11년전
    h.5190
    v.1
    GNCkorea
    Image 파일이 저장되는 리얼경로 알려주기.
    Image 파일이 저장되는 리얼경로 알려주기.
    11년전
    h.4683
    v.0
    GNCkorea
    BItmap size Resizing 시켜주기
    BItmap size Resizing 시켜주기
    11년전
    h.3106
    v.1
    GNCkorea
    Bitmap 파일 회전시키기
    Bitmap 파일 회전시키기
    11년전
    h.3922
    v.1
    GNCkorea
    launcherShortCut (바로가기 아이콘)입니다.
    launcherShortCut (바로가기 아이콘)입니다.
    11년전
    h.3701
    v.1
    GNCkorea
    ZXing 바코드 스캔부분 크기 조절하기.
    ZXing 바코드 스캔부분 크기 조절하기.
    11년전
    h.5382
    v.0
    GNCkorea
    ViewPager의 아이템 얻어오기.
    ViewPager의 아이템 얻어오기.
    11년전
    h.5087
    v.1
    GNCkorea
    zxing 가로모드에서 세로모드로 변경하기
    zxing 가로모드에서 세로모드로 변경하기
    11년전
    h.12319
    v.1
    GNCkorea
    안드로이드 개발 시, Selector XML을 편하게 만들어봅시다!!
    안드로이드 개발 시, Selector XML을 편하게 만들어봅시…
    11년전
    h.4965
    v.1
    GNCkorea
    개인이 앱 판매할 때, 준비해야 할 것들 (사업자 등록 등)
    개인이 앱 판매할 때, 준비해야 할 것들 (사업자 등록 …
    11년전
    h.3753
    v.1
    GNCkorea
    젤리빈 로그캣 변경점
    젤리빈 로그캣 변경점
    11년전
    h.4253
    v.1
    GNCkorea
    삼성 AdHub SDK 심각한 버그 있네요.
    삼성 AdHub SDK 심각한 버그 있네요.
    11년전
    h.3623
    v.1
    GNCkorea
    윈도우8과 함께 등장한 윈도우 스토어, 자유와 통제의 기로에서 선택은?
    윈도우8과 함께 등장한 윈도우 스토어, 자유와 통제의 …
    11년전
    h.3033
    v.0
    GNCkorea
    안드로이드 강좌 6 - Java 코드(Code)에서 뷰(View) 다루기
    안드로이드 강좌 6 - Java 코드(Code)에서 뷰(View) 다…
    11년전
    h.2897
    v.0
    GNCkorea
    안드로이드 강좌 5 - XML에서의 TextView, ImageView, LinearLayout
    안드로이드 강좌 5 - XML에서의 TextView, ImageView, L…
    11년전
    h.5025
    v.1
    GNCkorea
    안드로이드 강좌 4 - 액티비티(Activity), 뷰(View), 레이아웃(Layout)
    안드로이드 강좌 4 - 액티비티(Activity), 뷰(View), 레…
    11년전
    h.4950
    v.1
    GNCkorea
    안드로이드 강좌 3 - 프로젝트 실행과 디버깅 그리고 단말 세팅
    안드로이드 강좌 3 - 프로젝트 실행과 디버깅 그리고 단…
    11년전
    h.3510
    v.0
    GNCkorea
    안드로이드 강좌 2 - 이클립스 개발환경 사용법 및 프로젝트 생성
    안드로이드 강좌 2 - 이클립스 개발환경 사용법 및 프로…
    11년전
    h.3908
    v.1
    GNCkorea
    안드로이드 프로그램이 죽는 경우 디버깅 방법
    안드로이드 프로그램이 죽는 경우 디버깅 방법
    11년전
    h.4658
    v.1
    GNCkorea
    윈도우즈 개발환경 구성 - Eclipse 3.6.1 (Helios), ADT-8.0.1
    윈도우즈 개발환경 구성 - Eclipse 3.6.1 (Helios), ADT…
    11년전
    h.3564
    v.1
    GNCkorea