Android/Java
안드로이드 바로가기 만들기 ShortCut
easy-1
2021. 6. 10. 16:12
<개요>
앱의 각 부분에 빠르게 액세스하도록 하는 것으로
- 정적 바로가기
- 동적 바로가기
- 고정된 바로가기 로 나뉨
여기서는 고정된 바로가기에 대해서 알아보자
<적용 방법>
- Android 8.0 (API 수준 26) 이상에서만 고정된 바로가기를 만들 수 있음.
- 정적 및 동적 바로가기와 달리 고정된 바로가기는 지원되는 런처에 별도의 아이콘으로 표시됨
1. isRequestPinShortcutSupported() 를 사용하여 바로가기 고정을 지원하는지 확인
2. requestPinShortcut() 을 호출하여 바로가기를 기기의 런처에 고정.
3. 성공적으로 고정된 후 PendingIntent 객체를 전달
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Intent intent = new Intent(this, SecondActivity.class);
intent.setAction(Intent.ACTION_MAIN);
intent.putExtra("name", "value");
ShortcutManager mShortcutManager = getSystemService(ShortcutManager.class);
if (mShortcutManager.isRequestPinShortcutSupported()) {
// Assumes there's already a shortcut with the ID "my-shortcut".
// The shortcut must be enabled.
Bitmap bitmap = null;
if (bitmap == null) {
// pinShortcutInfo
Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.icon_sample, null);
bitmap = ((BitmapDrawable) drawable).getBitmap();
}
// id는 고유값
ShortcutInfo pinShortcutInfo = new ShortcutInfo.Builder(this, "id")
.setShortLabel(shortLabel)
.setLongLabel(longLabel)
.setIcon(Icon.createWithBitmap(bitmap))
.setIntent(oreoIntent)
.build();
Intent pinnedShortcutCallbackIntent = mShortcutManager.createShortcutResultIntent(pinShortcutInfo);
// Configure the intent so that your app's broadcast receiver gets the callback successfully.
PendingIntent successCallback = PendingIntent.getBroadcast(this, 0,
pinnedShortcutCallbackIntent, 0);
Boolean isSuccess = mShortcutManager.requestPinShortcut(pinShortcutInfo,
successCallback.getIntentSender());
if (isSuccess) {
// Toast.makeText(this, shortLabel + "바로가기가 바탕화면에 생성되었습니다.", Toast.LENGTH_LONG).show();
}
}
}