2012-02-26 2 views
10

사용자가 Android 앱을 설치하면 앱 메뉴에 실행 아이콘이 생성됩니다. 내가 앱을 설치할 때 홈 화면 ("런치 패드")에 아이콘이 자동으로 나타납니다.홈 화면에 런처 아이콘을 한 번만 설치하십시오.

많은 앱이이를 어떻게 든 성취합니다. 내 기본 설정은 사용자에게 "바로 가기를 추가 하시겠습니까?"라고 묻는 설치 화면에 나타나는 것입니다. 그럴 수 없다면 바로 가기를 자동 추가하는 모든 코드가 수행합니다. http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LauncherShortcuts.html 당신의 프로젝트에이 코드 (및 관련 XML)를 추가하면 트릭을 할 것이라고 암시 :

안드로이드는 여기에 코드의 무리를 준다. 그러나 그것은 내가 원하는 효과가 없습니다. 제공된 코드는 수동적 인 것으로 보이며 어떻게 든 트리거해야합니다.

가 어떻게 바로 가기의 설치를 트리거 않으며, 어떻게 그것이 바람직 "응용 프로그램 설치"이벤트의 일종에 의해 촉발 한 번만 발생 확인을 수행합니다

그래서 제 질문은?

PS : 필자는 PhoneGap을 사용하여 내 앱을 제작하고 있는데 이는 주요 활동이 '활동'이 아니라 'DroidGap'임을 의미합니다.

+1

Android 마켓을 통해 설치된 앱의 경우 INSTALL_SHORTCUT 권한을 포함하면 실행기 바로 가기가 자동으로 설치됩니다. 하지만 앱을 게시 할 때까지는 알 수 없습니다. 다른 방법을 통해 휴대 전화로 다운로드하는 APK에서 설치하는 경우에도 트릭을 수행 할 수 없습니다. – Wytze

답변

1

이 예에서는 intentsetResult(...)에 반환합니다. 바로 가기 설치를 실행하려면 sendBroadcast(intent)을 실행해야한다고 생각합니다.

+0

트라이어드,이 코멘트 주셔서 감사합니다. 나는 sendBroadcast (인 텐트)를 App.java (기본 액티비티)와 LauncherShortcuts.java 자체의 서로 다른 위치에서 실행 해 보았습니다. 결과가 없다. – Wytze

+0

흠''AndroidManifest.xml'에''이 있습니까? – triad

+0

나는 또한 샘플 코드가'intent.setAction (Intent.ACTION_CREATE_SHORTCUT) '을 호출하지 않는다는 사실에 주목했다. – triad

0

DroidGap 클래스는 활동을 확장하므로 사용자가 제공 한 링크의 코드를 추가하여 바로 가기를 추가 할 수 있습니다.

+0

Simon, 링크에서 코드를 추가하려고했습니다. 그것은 작동하지 않았다. LauncherShortcuts.java와 LauncherShortcuts.xml을 포함 시켰지만, 앱을 설치할 때 아무런 변화가 없습니다. 아마도 "링크의 코드에 추가"라고 할 때보다 구체적인 아이디어가 있습니까? – Wytze

4
Intent shortcutIntent = new Intent(getApplicationContext(), HomeScreen.class);  
    shortcutIntent.setAction(Intent.ACTION_MAIN); 

    Intent addIntent = new Intent(); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "AIMS ICD"); 
    addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(getApplicationContext(), R.drawable.aims)); 
    addIntent.putExtra("duplicate", false); 
    addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); 
    getApplicationContext().sendBroadcast(addIntent); 
관련 문제