Skip to content
모두의 공간
개발자 공간
사용자 공간
최근글
로그인
접속유지
회원가입
ID/PW 찾기
모두의 공간
새로운 소식
새로운 게임/앱
개발자 공간
개발자 게시판
개발자 질문/답변
개발자 정보
구인/구직/의뢰
행사/세미나/교육
(구)질문/답변
사용자 공간
앱 정보/후기
게임 정보/후기
기기 정보/후기
잡담/유머/창작
개발자 질문/답변 게시판이 새로운 공간으로 이전되었습니다.
안드로이드 개발 질문/답변 (글 수
45,052
)
전체보기
앱개발 질문
플랫폼 질문
JAVA 질문
기타 질문
자주하는 질문
Install한 application을 바로 바탕화면에 icon이나 widget UI를 표시 할 수 있나요?
안드
https://www.androidpub.com/android_dev_qna/21009
2009.08.11
16:55:59
4812
2
앱개발 질문
안녕하세요,
보통 Application을 Download 하고 Install하면 Launcher에 설치가 되고
사용자는 필요한 경우 바탕화면에 Icon을 위치시키는데요,
사용자 행위 없이 Install하자 바로 바로 바탕화면에 Icon이나 Widget을 Display할 수 있는 방법이 있나요?
있으면 어떻게 하는지 알려 주시면 감사하겠습니다.^^
이 게시물을
목록
2009.08.11
17:52:45
노쑤
launcher 소스를 보시며 도움이 될듯합니다.
(저도 해보진 않았습니다. 아래 설명은 전부 추측입니다. 시간나면 저도 해보고 싶군요)
위젯이나 쇼컷 등록하시고 나면
$ adb -e shell
# sqlite3 /data/data/com.android.launcher/databases/launcher.db
sqlite> select * from favorites;
적용된걸 확인 하실 수 있습니다.
결국 저 DB에 액세스 해서 업데이트 해야되는데...
launcher에서 LauncherProvider를 제공해주니.. 그쪽 통해서 적절하게 업데이트 하시면 될껍니다.
$ vi ./packages/apps/Launcher/src/com/android/launcher/Launcher.java
591 /**
592 * Add a shortcut to the workspace.
593 *
594 * @param data The intent describing the shortcut.
595 * @param cellInfo The position on screen where to create the shortcut.
596 * @param insertAtFirst
597 */
598 private void completeAddShortcut(Intent data, CellLayout.CellInfo cellInfo,
599 boolean insertAtFirst) {
600 cellInfo.screen = mWorkspace.getCurrentScreen();
601 if (!findSingleSlot(cellInfo)) return;
602
603 final ApplicationInfo info = addShortcut(this, data, cellInfo, false);
604
605 if (!mRestoring) {
606 sModel.addDesktopItem(info);
607
608 final View view = createShortcut(info);
609 mWorkspace.addInCurrentScreen(view, cellInfo.cellX, cellInfo.cellY, 1, 1, insertAtFirst);
610 } else if (sModel.isDesktopLoaded()) {
611 sModel.addDesktopItem(info);
612 }
613 }
$ vi ./packages/apps/Launcher/src/com/android/launcher/LauncherModel.java
612 private static void updateShortcutLabels(ContentResolver resolver, PackageManager manager) {
613 final Cursor c = resolver.query(LauncherSettings.Favorites.CONTENT_URI,
614 new String[] { LauncherSettings.Favorites.ID, LauncherSettings.Favorites.TITLE,
615 LauncherSettings.Favorites.INTENT, LauncherSettings.Favorites.ITEM_TYPE },
616 null, null, null);
617
618 final int idIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.ID);
619 final int intentIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.INTENT);
620 final int itemTypeIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.ITEM_TYPE);
621 final int titleIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.TITLE);
622
623 // boolean changed = false;
647 resolver.update(
648 LauncherSettings.Favorites.CONTENT_URI_NO_NOTIFICATION,
649 values, "_id=?",
650 new String[] { String.valueOf(c.getLong(idIndex)) });
651
652 // changed = true;
653 }
$ vi ./packages/apps/Launcher/src/com/android/launcher/LauncherProvider.java
52 public class LauncherProvider extends ContentProvider {
53 private static final String LOG_TAG = "LauncherProvider";
54 private static final boolean LOGD = true;
55
56 private static final String DATABASE_NAME = "launcher.db";
57
58 private static final int DATABASE_VERSION = 3;
59
60 static final String AUTHORITY = "com.android.launcher.settings";
2009.09.29
10:57:48
노쑤
icon은 xml에 추가하셔도 잘작동되는군요... 사용자 widget은 잘 안되네요
전체보기
앱개발 질문
플랫폼 질문
JAVA 질문
기타 질문
자주하는 질문
번호
분류
제목
글쓴이
날짜
추천
조회
공지
앱개발 질문
게시글 작성시 소스코드를 보기 쉽게 처리하기
33
멍멍대왕
01-21
5
621999
공지
앱개발 질문
[필독] Q&A 게시판 글작성 안내, 질문전 검색 필수!
176
회색
01-29
7
1064731
532
앱개발 질문
TextView 에 Dialog Theme 를 적용하고 싶습니다.
1
룡이
08-13
3616
531
앱개발 질문
혹시 java에서는 void 또는 void* 타입을 인식하지 못하나요 ?(냉무)
1
닥코마니아
08-13
2123
530
앱개발 질문
draw 관련 질문입니다.
rebmir
08-13
2133
529
앱개발 질문
Screen locked이 풀리지가 않습니다.
고글
08-13
2432
528
앱개발 질문
화면 자동 꺼짐 방지 할 수 있나요 ??
3
웅하
08-13
10889
527
앱개발 질문
Thread 쓰레드 죽이기가 안되네요
5
랑자
08-13
21005
526
앱개발 질문
onListItemClick가 잘안되요 ㅠㅠ
3
포생마
08-12
2967
525
앱개발 질문
홈 스크린 디자인에 관한 질문입니다.
1
시인시니
08-12
2707
524
앱개발 질문
Camera관련 질문입니다..
1
Clark
08-12
2099
523
앱개발 질문
안드로이드 폰에서 자신의 아이피 주소를 확인 할 수 있는 방법이 있나요?
2
우디
08-12
3721
522
앱개발 질문
불규칙한 이름의 이미지를 생성하려면 어떻게 해야하나요?
2
허몽
08-12
2111
521
앱개발 질문
뷰 속성값 설정 질문입니다. + 이미지
3
rebmir
08-12
3069
520
플랫폼 질문
i7500 터미널모드 접속방법 아시는분 부탁드립니다.
4
낵교
08-12
5585
519
앱개발 질문
TextView 의 marquee 속성에 대해..
7
질풍도깨비
08-12
8095
518
앱개발 질문
JNI에서 패키지 파일 컴파일 하는 방법 ?
8
닥코마니아
08-12
7915
517
앱개발 질문
에뮬에서 Lock Screen을 보려면...
윈드지니
08-12
2112
앱개발 질문
Install한 application을 바로 바탕화면에 icon이나 widget UI를 표시 할 수 있나요?
2
안드
08-11
4812
515
앱개발 질문
main.xml에 새로운 뷰 추가하는 방법질문요!!
1
깡통로봇
08-11
2328
514
앱개발 질문
OnTouch와 OnLongClick 둘다 사용 가능한가요?
2
안드롯
08-11
8699
513
앱개발 질문
뷰 관련 질문입니다.
2
rebmir
08-11
2818
목록
쓰기
첫 페이지
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
끝 페이지
최근 인기글
개발자 질문/답변 게시판이 새로운 공간으로 이전되었습니다.
제목+내용
제목
내용
댓글
이름
닉네임
태그
검색
취소
Close Login Layer
XE Login
아이디
비밀번호
로그인 유지
OpenID Login
Open ID
회원가입
ID/PW 찾기
인증메일 재발송
OpenID
OpenID
Close Login Layer
(저도 해보진 않았습니다. 아래 설명은 전부 추측입니다. 시간나면 저도 해보고 싶군요)
위젯이나 쇼컷 등록하시고 나면
$ adb -e shell
# sqlite3 /data/data/com.android.launcher/databases/launcher.db
sqlite> select * from favorites;
적용된걸 확인 하실 수 있습니다.
결국 저 DB에 액세스 해서 업데이트 해야되는데...
launcher에서 LauncherProvider를 제공해주니.. 그쪽 통해서 적절하게 업데이트 하시면 될껍니다.
$ vi ./packages/apps/Launcher/src/com/android/launcher/Launcher.java
591 /**
592 * Add a shortcut to the workspace.
593 *
594 * @param data The intent describing the shortcut.
595 * @param cellInfo The position on screen where to create the shortcut.
596 * @param insertAtFirst
597 */
598 private void completeAddShortcut(Intent data, CellLayout.CellInfo cellInfo,
599 boolean insertAtFirst) {
600 cellInfo.screen = mWorkspace.getCurrentScreen();
601 if (!findSingleSlot(cellInfo)) return;
602
603 final ApplicationInfo info = addShortcut(this, data, cellInfo, false);
604
605 if (!mRestoring) {
606 sModel.addDesktopItem(info);
607
608 final View view = createShortcut(info);
609 mWorkspace.addInCurrentScreen(view, cellInfo.cellX, cellInfo.cellY, 1, 1, insertAtFirst);
610 } else if (sModel.isDesktopLoaded()) {
611 sModel.addDesktopItem(info);
612 }
613 }
$ vi ./packages/apps/Launcher/src/com/android/launcher/LauncherModel.java
612 private static void updateShortcutLabels(ContentResolver resolver, PackageManager manager) {
613 final Cursor c = resolver.query(LauncherSettings.Favorites.CONTENT_URI,
614 new String[] { LauncherSettings.Favorites.ID, LauncherSettings.Favorites.TITLE,
615 LauncherSettings.Favorites.INTENT, LauncherSettings.Favorites.ITEM_TYPE },
616 null, null, null);
617
618 final int idIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.ID);
619 final int intentIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.INTENT);
620 final int itemTypeIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.ITEM_TYPE);
621 final int titleIndex = c.getColumnIndexOrThrow(LauncherSettings.Favorites.TITLE);
622
623 // boolean changed = false;
647 resolver.update(
648 LauncherSettings.Favorites.CONTENT_URI_NO_NOTIFICATION,
649 values, "_id=?",
650 new String[] { String.valueOf(c.getLong(idIndex)) });
651
652 // changed = true;
653 }
$ vi ./packages/apps/Launcher/src/com/android/launcher/LauncherProvider.java
52 public class LauncherProvider extends ContentProvider {
53 private static final String LOG_TAG = "LauncherProvider";
54 private static final boolean LOGD = true;
55
56 private static final String DATABASE_NAME = "launcher.db";
57
58 private static final int DATABASE_VERSION = 3;
59
60 static final String AUTHORITY = "com.android.launcher.settings";