2012-03-08 3 views
2

다른 앱을 열 예정이었는데 앱을 만들고 있습니다. 유일한 문제는 타사 앱을 참조하는 방법을 모르겠다는 것입니다. 나는 의도를 사용하려고합니다. packagename 만 사용하여 참조 할 수 있습니까? 아니면 주 활동 의도가 필요합니까? 올바른 의도를 찾고이를 참조 할 수있는 간단한 방법이 있습니까?인 텐트에서 타사 앱 열기

답변

2

다른 앱을 열려고했는데 앱을 만들고 있습니다.

저는 이것을 홈 화면에서 발견되는 런처와 같은 의미로 해석합니다.

packagename 만 사용하거나 Main Activity Intent가 필요합니까?

발사기는 ACTION_MAIN/CATEGORY_LAUNCHERIntent를 사용합니다.

올바른 의도를 찾고이를 참조 할 수있는 간단한 방법이 있습니까?

사용 PackageManager는 장치에 가능한 모든 ACTION_MAIN/CATEGORY_LAUNCHER 활동을 찾은 다음에서 선택할 수있는 사용자들을 표시합니다. 그런 다음 특정 선택을 시작하기에 적합한 Intent을 구성 할 수 있습니다.

Here is a sample project은 실행 프로그램을 구현합니다.

PackageManager pm=getPackageManager(); 
Intent main=new Intent(Intent.ACTION_MAIN, null); 

main.addCategory(Intent.CATEGORY_LAUNCHER); 

List<ResolveInfo> launchables=pm.queryIntentActivities(main, 0); 

을 그리고 여기 "launchables"에서 하나의 사용자 클릭에 따라 실제 발사 논리입니다 :

이 발사 될 수있는 것들의 목록을 마련하려면 해당 예제 응용 프로그램 사용 a ListActivity :

@Override 
    protected void onListItemClick(ListView l, View v, 
           int position, long id) { 
    ResolveInfo launchable=adapter.getItem(position); 
    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

RadioButtons 또는 CheckBoxes도 사용하는 예를 알고 있습니까? – Magakahn

관련 문제