216. (AndroidStudio/android/java) 애플리케이션 바로 가기 메뉴...

216. (AndroidStudio/android/java) 애플리케이션 바로 가기 메뉴...

728x90

반응형

[개발 환경 설정]

개발 툴 : 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("","

"+"[A_Loading > onCreate() 메소드 : AppShortcuts 바로 가기 메뉴 추가 실시]"); Log.w("//===========//","================================================"); Log.d("---","---"); // [바로가기 메뉴 삭제 수행 실시] //shortcutManager.removeAllDynamicShortcuts(); // [전체 값 삭제] //shortcutManager.removeDynamicShortcuts(Arrays.asList(appShortcutId)); // [특정 값 삭제] } catch (Exception e){ e.printStackTrace(); } }

[결과 출력]

728x90

반응형

from http://kkh0977.tistory.com/1375 by ccl(A) rewrite - 2021-11-06 19:28:00