Notice
Recent Posts
Recent Comments
Link
투케이2K
216. (AndroidStudio/android/java) 애플리케이션 바로 가기 메뉴 만들기 실시 - app shortcuts 본문
Android
216. (AndroidStudio/android/java) 애플리케이션 바로 가기 메뉴 만들기 실시 - app shortcuts
투케이2K 2021. 11. 6. 19:17[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : java
[소스 코드]
// [안드로이드 오레오 이상 버전인 경우 >> AppShortcuts 바로가기 메뉴 추가 [5개 까지 가능]]
/**
* [AppShortcuts 설명]
* staitc AppShortcuts : AndroidManifest.xml 파일에 메타 태그 등록 및 xml 파일로 추가
* dynamic AppShortcuts : 코드로 동적으로 추가 실시 아이콘 생성 선택
* pinned AppShortcuts : 코드로 동적으로 추가 실시 및 아이콘 생성됨
*/
/**
* [AppShortcuts 속성 정리]
* shortcutId : Shortcut의 고유한 ID (Shrotcut을 등록하거나 찾을 때 이 ID를 사용)
* enabled : 이 값이 true라면 Shortcut 아이콘을 눌렀을 때 어떤 기능이 동작
* icon : Shortcut의 아이콘
* shortcutShortLabel : Shortcut의 이름 (가능하면 10자 내외로 작성)
* shortcutLongLabel : Shortcut의 이름 (가능하면 25자 내외로 작성)
* shortcutDisabledMessage : 비활성화된 Shortcut을 실행시킬 때 이 메시지를 표시
* intent: Shortcut 아이콘을 눌렀을 때 실행되는 인텐트 (내 앱의 Activity를 실행시킬 수 있고, 또는 다른 앱 실행 가능)
*/
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
try {
// [ShortcutManager 객체 생성 실시]
Context context = getApplicationContext();
ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class);
// [바로 가기 메뉴 추가 실시 : 구글 웹사이트 이동]
String googleWebsiteShortcutId = "googleWebsiteShortcutId";
ShortcutInfo googleWebsiteShortcut = new ShortcutInfo.Builder(context, googleWebsiteShortcutId)
.setShortLabel("Google Website")
.setLongLabel("Open Google Website")
.setDisabledMessage("Google Website is disabled")
.setIcon(Icon.createWithResource(context, R.drawable.tk_app_icon))
.setIntent(
new Intent(Intent.ACTION_VIEW)
.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
.setData(Uri.parse("https://www.google.com"))
)
.build();
// [바로 가기 메뉴 추가 실시 : 애플리케이션 설정]
String appShortcutId = "appShortcutId";
ShortcutInfo appShortcut = new ShortcutInfo.Builder(context, appShortcutId)
.setShortLabel("App Settings")
.setLongLabel("Open App Settings")
.setDisabledMessage("App Settings is disabled")
.setIcon(Icon.createWithResource(context, R.drawable.tk_app_icon))
.setIntent(
new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
.setData(Uri.fromParts("package", context.getPackageName(), null))
)
.build();
// [바로 가기 메뉴 추가 실시 : 액티비티 이동]
String activityShortcutId = "activityShortcutId";
ShortcutInfo activityShortcut = new ShortcutInfo.Builder(context, activityShortcutId)
.setShortLabel("Activity Settings")
.setLongLabel("Open Activity Settings")
.setDisabledMessage("Activity Settings is disabled")
.setIcon(Icon.createWithResource(context, R.drawable.tk_app_icon))
.setIntent(
new Intent(Intent.ACTION_VIEW)
.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
.setClassName(getPackageName(),
String.valueOf(getPackageName())+".A_SettingGo") // A_SettingGo 액티비티 이동
.putExtra("A_SettingGo", "hello") // 데이터 전송
)
.build();
// [바로가기 메뉴 추가 수행 실시]
shortcutManager.setDynamicShortcuts(Arrays.asList(googleWebsiteShortcut, appShortcut, activityShortcut)); //[생성]
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_Loading > onCreate() 메소드 : AppShortcuts 바로 가기 메뉴 추가 실시]");
Log.w("//===========//","================================================");
Log.d("---","---");
// [바로가기 메뉴 삭제 수행 실시]
//shortcutManager.removeAllDynamicShortcuts(); // [전체 값 삭제]
//shortcutManager.removeDynamicShortcuts(Arrays.asList(appShortcutId)); // [특정 값 삭제]
}
catch (Exception e){
e.printStackTrace();
}
}
[결과 출력]
반응형
'Android' 카테고리의 다른 글
Comments