=================================
=================================
=================================
출처: http://aroundck.tistory.com/1854
Launcher( HomeScreen ) 에 Shortcut( 바로가기 ) 생성하기
폰을 처음켰을 때 나오는 어플.
소위 말하는 HomeScreen 이라 부르는 녀석의 본래 이름은 Launcher ( 런처 ) 이다.
이 런처에 Shortcut 을 추가하는 코드를 설명한다.
Manifest 에 권한설정
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
저 권한이 있어야만, 해당 앱에서 Launcher 에 Shortcut 을 설치( Install ) 하라는 명령을 내릴 수 있다.
참고로, 일반적인 규칙을 따른 런처는 저 INSTALL_SHORTCUT 을 구현했겠지만,
간혹가다 개인이 만든 런처의 경우 이 녀석을 구현 안 하는 경우도 있다.
Shortcut 추가를 구현하지 않은 Custom Launcher 를 사용하면서,
"이 코드를 따라했는데 왜 무작정 안돼?"
라고 이야기하며 성질부려도 나는 모른다.
이는 런처 개발자한테 따져라.
Shortcut 추가하는 코드
Shortcut 추가는 Launcher 에게 Broadcast 를 날림으로 실행한다.
이 때 Intent 는 2개가 사용된다.
1개는 새로 추가된 Shortcut 을 Click ( Touch ) 했을 때
수행될 Intent 를 정의하는 것이고,
다른 하나는 새로 추가될 Shortcut 의 이름, 아이콘, 위에서 정의한 Intent 를 담아서 Launcher 에게
Shortcut 추가를 요청하는 Broadcast 용 Intent 이다.
코드를 보는 것이 이해가 더 빠르겠다.
private void addShortcut(){
Intent shortcutIntent = new Intent( this, FortuneTelling.class );
shortcutIntent.setAction( Intent.ACTION_MAIN );
Intent shortcutAddIntent = new Intent( ACTION_INSTALL_SHORTCUT );
shortcutAddIntent.putExtra( Intent.EXTRA_SHORTCUT_NAME, getResources().getString( R.string.app_name ) );
shortcutAddIntent.putExtra( Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext( this, R.drawable.icon ) );
shortcutAddIntent.putExtra( KEY_SHORTCUT_DUPLICATE, false );
shortcutAddIntent.putExtra( Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent );
sendBroadcast( shortcutAddIntent );
}
출처: http://flystone.tistory.com/105
개발자 추가 설명: addShortcut() 실행하면 계속 바탕화면에 추가되기 때문에, Preference 를 이용하여 앱 최초 한번만 실행하도록 하였다.
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
_pref = getSharedPreferences("HelloKittyCafe", MODE_PRIVATE);
isShortcut = _pref.getBoolean("isShortcut", false);
Log.e("test1", "isShortcut: " + isShortcut);
if (!isShortcut)
{
addShortcut(this);
}
}
private void addShortcut(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_name));
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(context,
R.drawable.icon));
intent.putExtra("duplicate", false);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);
// preference save
SharedPreferences.Editor editor = _pref.edit();
editor.putBoolean("isShortcut", true);
editor.commit();
}
[출처] 안드로이드 바탕화면 바로가기 추가 - ShortCut|작성자 thanksyo
=================================
=================================
=================================
출처: http://harpy2.blogspot.kr/2012/12/blog-post_6.html
[홈 화면 아이콘] - 기본설정
아이폰의 경우 웹 페이지를 앱처럼처럼 홈 화면에 바로가기를 추가할 수 있습니다.
단순히 아이콘만 설정 가능한 것이 아니라 아이폰의 홈 화면 아이콘들의 공통점인 라운드 박스 효과는
기본적으로 적용되고, 반사광 효과의 적용 유무를 추가로 선택이 가능합니다.
// 반사광 효과를 주는 경우
<link rel="apple-touch-icon" href="../images/icon.png" />
// 반사광 효과가 없는 경우
<link rel="apple-touch-icon-precomposed" href="../images/icon.png" />
apple-touch-icon.png / apple-touch-icon-precomposed.png 의 파일명으로 도메인의 최상위 경로에 올려두면
위의 link 태그를 적용하지 않아도 홈 화면에 추가시 아이콘이 적용됩니다.
기기별 홈 아이콘 이미지 사이즈
: 아이폰3G, 아이폰3GS [ 사이즈: 57*57 ]
: 아이패드 [ 사이즈: 72*72 ]
: 아이폰 4 [ 사이즈: 114*114 ]
홈 아이콘 작업시 주의사항!!
- 이미지는 네모 : 사파리 브라우저에서 홈 아이콘 등록시 기본으로 라운드 박스 효과 적용됩니다.
- 라운드 박스 작업 No : 이미지를 라운드 박스로 작업할 경우 홈아이콘 추가시 깨져보임니다.
- 반사광 없이 작업 : 기본으로 반사광이 들어가며, 반사광 여부를 설정할 수 있습니다.
- 이미지는 png로 저장!!
=================================
=================================
=================================
출처: http://egloos.zum.com/tiger5net/v/5877487
앱 단축아이콘과 웹사이트 단축아이콘 생성
앱 단축아이콘에 대해 생성 및 삭제하는 코드들은 웹사이트 상에 많이 존재한다.
그런데 웹사이트를 단축아이콘으로 만드는 것은 (북마크처럼) 많이 보이지 않아 아래와 같이 정리해둔다.
물론 실무에서 써 먹기 위해서는 두 단축아이콘 다 이미 처리되어 있는지 확인하는 로직이 필요하다.
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
먼저 INSTALL_SHORTCUT 권한을 추가한다.
// 앱 단축아이콘이 추가되며, 클릭하면 앱이 실행된다.
createAppShortcut(this, "APP");
// 웹사이트 단축아이콘이 추가되며, 클릭하면 Explorer 로 네이버사이트가 오픈된다.
createWebsiteShortcut(this, "http://www.naver.com", "네이버");
public void createAppShortcut(Context context, String name) {
Intent shortcutIntent = new Intent();
shortcutIntent.setAction(Intent.ACTION_MAIN);
shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER);
shortcutIntent.setClassName(context, getClass().getName());
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.ic_launcher));
intent.putExtra("duplicate", false);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendBroadcast(intent);
}
public void createWebsiteShortcut(Context context, String urlStr, String name) {
Intent shortcutIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(urlStr));
Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, name);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.ic_launcher));
intent.putExtra("duplicate", false);
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
context.sendBroadcast(intent);
}
=================================
=================================
=================================
출처: https://chongmoa.com:45183/mobile/5478
아이폰과 안드로이드 폰은 웹 페이지의 바로가기를 장치 화면에 추가하는 기능을 제공해주고 있습니다.
그래서 앱과 같이 아이콘을 설정해놔서 사용자가 앱 실행하는 방법과 같이 아이콘을 클릭해서 모바일 사이트에 접근할 수 있도록 할 수 있습니다.
아이폰과 안드로이드 아이콘 등록 방법은 link태그를 이용하면 되는데, 설정하는 방법은 조금 다르니 아래를 참고하시기 바랍니다.
1. iOS
기본 아이폰이 제공하는 UI 처리 : 아이폰은 자동으로 모서리가 둥글게 되고, 아이콘 위쪽은 밝게, 아래는 어둡게 자동으로 광택 효과가 적용
1.1 기본 아이폰이 제공하는 UI 처리 사용시
<link rel="apple-touch-icon" href="/이미지경로/icon.png" /> |
1.2 기본 아이폰이 제공하는 UI 처리 사용하지 않을시
<link rel="apple-touch-icon-precomposed" href="/이미지경로/icon.png" /> |
apple-touch-icon.png 가 기본 이름이지만 임의대로 할수도 있습니다.
일반적으로 아이폰에서 웹사이트 아이콘을 추가하게 되면 웹사이트 화면을 캡쳐한 내용을 아이콘으로 사용하는데
apple-touch-icon 이라는 링크를 추가하여 아이콘을 내가 지정한 것으로 사용할 수 있습니다.
아이폰은 57×57 , 아이패드는 72×72, 아이폰4는 114×114 사이즈의 png 이미지를 사용하며,
가능하면 114×114 이미지로 만들어두면 아이폰에서 자동으로 크기 리사이즈를 해줌.
2. 안드로이드(Android)
아이콘 사이즈는 안드로이는 같은 경우 72x72(px)의 png이미지를 지정하면 됩니다.
<link rel="shortcut icon" href="/이미지경로/icon.png" /> |
3. 스크립트를 이용 웹브라우저를 판단후 처리 할 수 있는 방법은 아래와 같습니다.
<script> var userAgent = navigator.userAgent.toLowerCase(); // 접속 핸드폰 정보 // 모바일 홈페이지 바로가기 링크 생성 if(userAgent.match('iphone')) { document.write('<link rel="apple-touch-icon" href="/이미지경로/icon.png" />') } else if(userAgent.match('ipad')) { document.write('<link rel="apple-touch-icon" sizes="72*72" href="/이미지경로/icon.png" />') } else if(userAgent.match('ipod')) { document.write('<link rel="apple-touch-icon" href="/이미지경로/icon.png" />') } else if(userAgent.match('android')) { document.write('<link rel="shortcut icon" href="/이미지경로/icon.png" />') } </script> |
=================================
=================================
=================================
출처: http://www.androidside.com/bbs/board.php?bo_table=b49&wr_id=135268
마땅한 답변이없어서 재탕요청합니다..ㅠ
개발을 혼자하다보니 이런곳에 밖에 도움을 청할곳이 없군요..ㅠ
바탕에 바로가기를 최초 한번만 설정하려고하는데요..
구글스토어의 바로가기와 제가 설정한 바로가기가 2번 중복이됩니다.
코드는 구성은 이렇게 되있습니다.
public void installMokachinAppShortcut() {
try {
String str = getPackageName();
Intent localIntent1 = getPackageManager().getLaunchIntentForPackage(str);
localIntent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
Intent localIntent2 = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
localIntent2.putExtra("android.intent.extra.shortcut.NAME", getString(R.string.app_name));
localIntent2.putExtra("android.intent.extra.shortcut.INTENT", localIntent1);
Intent.ShortcutIconResource localShortcutIconResource = new Intent.ShortcutIconResource();
localShortcutIconResource.packageName = str;
localShortcutIconResource.resourceName = getResources().getResourceName(R.drawable.ic_launcher);
localIntent2.putExtra("android.intent.extra.shortcut.ICON_RESOURCE", localShortcutIconResource);
localIntent2.putExtra("duplicate", false);
sendBroadcast(localIntent2);
} catch (Resources.NotFoundException localNotFoundException) {
} catch (Exception localException) {
}
}
"duplicate"는 API 14버전 이상부터 지원하지 않는다고 나오는데
이걸로 하나 안하나 바탕화면에 아이콘이 계속 계속되더라구요
그래서 Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED 플래그를 주었더니 최초한번 만뜨게 되었습니다.
그러나 문제가 하나더 생겨버렸습니다..디바이스마다 생기고 안생기고 하는데
GooglePlay에 환경설정에 바탕화면 아이콘에 추가하기 옵션이있는데
그걸 체크하고 앱을 실행하면 바탕화면에 GooglePlay에서 만든아이콘과 앱에서도 만든 아이콘.. 2가지를 만들더라구요..
다음어플은 디컴파일해봐도 비슷한 코드로 구성이되있는데도 중복이 안되던데
좋은 방법없을까요..
=================================
=================================
=================================
출처: http://jizard.tistory.com/21 [JIZARD]
안드로이드 앱 최초 실행시 자동으로 바탕화면에 아이콘(shortcut)을 생성해주는 코드다.
SharedPreferences의 "check"라는 키를 이용해
해당 키의 value가 비어있으면(isEmpty()) shortcut을 생성하고,
그 후에는 "exist"라는 value를 채워준다.
SharedPreferences는 이렇듯 간단한 ON/OFF 설정에 이용하면 좋다.
사용법도 SQLDatabase보다 간단하며
앱이 삭제되지 않는 한 계속 지속되기 때문이다.
if(pref.getString("check","").isEmpty()) 이하 코드를 다르게 해서
앱 최초 실행시 취할 액션을 마음대로 꾸며보는 것도 좋다.
//데스크탑 아이콘 생성 public void createDesktopIcon() { SharedPreferences pref = getSharedPreferences("pref", MODE_PRIVATE); pref.getString("check", ""); if(pref.getString("check", "").isEmpty()){ Intent shortcutIntent = new Intent(Intent.ACTION_MAIN); shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER); shortcutIntent.setClassName(this, 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_name)); //앱 이름 intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher)); //앱 아이콘 intent.putExtra("duplicate", false); intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); sendBroadcast(intent); } SharedPreferences.Editor editor = pref.edit(); editor.putString("check", "exist"); editor.commit(); } Colored by Color Scripter |
출처: http://jizard.tistory.com/21 [JIZARD]
=================================
=================================
=================================
출처: http://comostudio.tistory.com/7
앱을 만들면 기본적으로 홈 화면에 shortcut(바로가기)을 생성 하지 않는다.
아래와 같은 단계로 작업 해주면 된다.
1. 우선 manifest 에 권한을 추가 해야 한다.
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
2. 실행 할 때 마다 shortcut 생성을 남발 할 수 있으니, 간단하게 sharedprefence로 저장해서 검사하자.
public SharedPreferences shortcutSharedPref;
public boolean isInstalled;
shortcutSharedPref = getSharedPreferences("what", MODE_PRIVATE);
isInstalled = shortcutSharedPref.getBoolean("isInstalled", false);
Log.e(LOG_TAG + "installed: " + isInstalled);
if (!isInstalled)
{
addShortcut(this);
}
3. ShortCut 생성 루틴
private void addShortcut(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_l_lol));
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();
}
간단하죠?
출처:
https://gist.github.com/zakelfassi/10423203
출처: http://comostudio.tistory.com/7 [코모스튜디오]
=================================
=================================
=================================
출처: http://muffkib.blog.me/197788708
안드로이드 경우, index.html에
<link rel="apple-touch-icon" href="/images/favicon.ico" />
입력하면 파비콘 (ico) 만이 호출이 된다.
아래 스크립트를 넣어 주었더니,
안드로이드 기기 바탕화면에서도 앱과 동일한 형태의 아이콘이 이쁘게 생성 되었다.
*라운딩이 강제로 먹는데 애플 스타일로 링크를 끌고 와서 그런건지 해결을 못했다.
<script type="text/javascript">
// 접속 핸드폰 정보
var userAgent = navigator.userAgent.toLowerCase();
// 모바일 홈페이지 바로가기 링크 생성
if(userAgent.match('iphone')) {
document.write('<link rel="apple-touch-icon" href="apple-touch-icon.png" />')
} else if(userAgent.match('ipad')) {
document.write('<link rel="apple-touch-icon" sizes="72*72" href="apple-touch-icon.png" />')
} else if(userAgent.match('ipod')) {
document.write('<link rel="apple-touch-icon" href="apple-touch-icon.png" />')
} else if(userAgent.match('android')) {
document.write('<link rel="shortcut icon" href="android.png" />')
}
</script>
*
<head>
<link rel="apple-touch-icon" href="apple-touch-icon.png">
<link rel="shortcut icon" href="android.png" />
*
1. 안드로이드 바탕화면 아이콘 호출 화면
(왼쪽이 Favicon.ico 호출 / 오른쪽이 Scripts 구현시 )
[출처] MOBILE FAVICON 모바일웹 아이콘-> 즐겨찾기-> 바탕화면 자동생성 |작성자 머프키브
=================================
=================================
=================================
'스마트기기개발관련' 카테고리의 다른 글
모바일 ios, android 등등 결제할때 인증 영수증 Receipt 값 웹에서 처리 관련 (0) | 2020.09.20 |
---|---|
모바일 푸시알람 개발 ios android .. 등등 푸시개발 관련 (0) | 2020.09.20 |
안드로이드 android, IOS, AIR 등등 WebView에서의 멀티뷰와 팝업 (0) | 2020.09.20 |
스마트앱개발 [KISA] 한국인터넷진흥원 스마트폰 앱 위반내역 송부 및 개선 요청 관련(개인정보 암호화 송수신 전송 위반(안정성 확보 조치 위반), 접근권한 (권한별 이유 고지 위반) 등등) (0) | 2020.09.20 |
안드로이드 IOS 등등 스마트폰 해상도 관련 (0) | 2020.09.19 |