일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- albumbook
- OSX
- fido
- 인증
- Android
- git
- MSYS2
- MYSQL
- SwiftUI
- 앨범북
- SSL
- appres
- css
- SSH
- 앱리소스
- apple
- Xcode
- SWIFT
- openssl
- MFA
- 안드로이드
- 2FA
- FIDO2
- kmip
- 애플
- Nodejs
- OTP
- otpkey
- WebAuthn
- 앱스토어
- Today
- Total
인디노트
안드로이드 앱 설치시 홈에 아이콘 생성 본문
안드로이드 앱을 설치하면 기본적으로 HOME 화면에 앱아이콘을 생성하지 않는다.
따라서, 앱을 개발할 때 해당하는 코드를 넣어야 한다.
우선 manifest 파일에 다음의 권한을 명시한다.
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
앱을 실행할 때마다 아이콘을 생성하면 사용자가 짜증을 낼 터이니 다음과 같이 체크하도록 한다.
public SharedPreferences shortcutSharedPref; public boolean isInstalled;shortcutSharedPref = getSharedPreferences("what", MODE_PRIVATE);
isInstalled = shortcutSharedPref.getBoolean("isInstalled", false);
Log.e(LOG_TAG + "installed: " + isInstalled);
if (!isInstalled) {
addAppIconToHomeScreen(this);}
private void addAppIconToHomeScreen(Context context) {
Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER);
shortcutIntent.setClassName(context, getClass().getName());
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getResources().getString(R.string.app_label));
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.mipmap.ic_launcher));
intent.putExtra("duplicate", false);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);
SharedPreferences.Editor editor = shortcutSharedPref.edit();
editor.putBoolean("isInstalled", true);
editor.commit();}
이정도면 적용해 사용하는데 지장이 없을 듯 하다.
'소스 팁 > Java, Android, Kotlin' 카테고리의 다른 글
Activity 생성시 Intent Flag (0) | 2017.01.10 |
---|---|
안드로이드 Bitmap Utility(resize, crop) 클래스 (0) | 2016.11.12 |
Android ViewPager.OnPageChangeListener 의 이벤트 전달 순서 (0) | 2016.10.29 |
안드로이드 프래그먼트 기본 사용법 (0) | 2016.10.29 |
Android Carousel Layout Manager (0) | 2016.10.22 |