2012-09-20 5 views
23

저는 Android 용 사용자 지정 시작 프로그램을 만들려고하고 있습니다. 다른 응용 프로그램을 시작하는 방법을 알아 내려고합니다. 나는 그것이 의도였다 할 수있는 방법을 생각하고, 나는 여기에 게시물을 발견했습니다ResolveInfo에서 인 텐트를 시작하는 방법

Open another application from your own (intent)

정말 그래도 대답을 이해하지 않는다! 누군가가 나에게 단 하나의 ResolveInfo에서 그 ResolveInfo가 나타내는 앱을 시작하기 위해 간략한 발췌 문장이나 일련의 단계를 제공 할 수 있습니까?

답변

39

감안할 ResolveInfolaunchable 이름 :

ActivityInfo activity=launchable.activityInfo; 
ComponentName name=new ComponentName(activity.applicationInfo.packageName, 
            activity.name); 
Intent i=new Intent(Intent.ACTION_MAIN); 

i.addCategory(Intent.CATEGORY_LAUNCHER); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
      Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); 
i.setComponent(name); 

startActivity(i); 

+0

완벽하게 고마워! –

+0

모든 항목이 정상이지만 모든 응용 프로그램에는 여기에 관리되지 않는 아이콘 크기가 있습니다. –

20

(https://github.com/commonsguy/cw-omnibus/tree/master/Introspection/Launchalot에서)이 방법에 의해 새로운 의도를 만듭니다.

Intent intent = new Intent(); 
    intent.setClassName(resolveInfo.activityInfo.applicationInfo.packageName, 
      resolveInfo.activityInfo.name); 
    startActivity(intent); 
+1

와우 쉽고 짧습니다 ... –

+1

두 번째 줄을 짧게 할 수 있습니까? int.setClassName (resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name); –

관련 문제