- ShortCut 기능은 원터치 바로 가기 기능이라고 볼 수 있다.
- 이렇게 바탕화면에서 특정 앱 아이콘을 롱클릭하면 몇 가지 옵션이 표시되는 것이다. 그리고 클릭 시, 해당 화면으로 바로 이동할 수 있다.
- 이를 정적 바로가기 라고 명칭하는데, 동적 바로가기도 존재한다. 다음 문서를 참고.
https://developer.android.com/develop/ui/views/launch/shortcuts/creating-shortcuts?hl=ko#dynamic
바로가기 만들기 | Views | Android Developers
이 페이지는 Cloud Translation API를 통해 번역되었습니다. 바로가기 만들기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 바로가기는 사용자가 특정 유형의 콘
developer.android.com
- 정적 바로가기 구현의 첫 번째 순서는 app/src/main/res/xml 하위에 shortcuts라는 xml 파일을 생성해 주고, 필요한 ShortCut 내용을 선언해 준다.
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<shortcut
android:enabled="true"
android:icon="@drawable/home"
android:shortcutId="open_home"
android:shortcutLongLabel="@string/home"
android:shortcutShortLabel="@string/home">
<intent
android:action="android.intent.action.VIEW"
android:data="myapp://open"
android:targetClass="com.~.~.SplashActivity" />
<categories android:name="android.shortcut.conversation" />
<capability-binding android:key="actions.intent.CREATE_MESSAGE" />
</shortcut>
</shortcuts>
- shortcuts 태그 내부에 여러 개의 ShortCut을 선언할 수 있다.
- enabled로 활성화 여부를 결정 가능하다.
- icon은 ShortCut 타이틀 좌측에 나타나는 아이콘이다.
- 디바이스에 따라 Long / Short 타이틀을 구분하여 나타낼 수 있다.
- intent 내부에서 데이터 + 스키마 조합을 구성해 주고, 해당 아이콘 클릭 시 이동할 클래스에 대해 선언해 준다.
- categories는 단축 아이콘이 속하는 카테고리를 나타낸다. 이 속성은 단축 아이콘을 런처에 표시하는 방법을 제어한다.
- capability-binding: 단축 아이콘이 어떤 기능을 수행하는지에 대해 선언해준다.
- 이후에는 shortcuts.xml을 Manifest - 타깃 activity 태그 안에 선언해주어야 한다.
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<data
android:scheme="myapp"
android:host="open" />
</intent-filter>
<meta-data android:name="android.app.shortcuts"
android:resource="@xml/shortcuts" />
- 모든 파일에 scheme는 실제 자신의 앱에 맞게 입력할 것
- 빌드하고 나서 바탕화면에서 테스트가 가능하다.
- 또한 타깃 Acitvity에서 intent.data를 통해 이후 동작을 처리할 수 있다.