2016-08-25 7 views
-1

Launcher 응용 프로그램을 개발 중입니다. 카메라와 갤러리의 패키지 이름이 같고 Google+와 사진의 패키지 이름이 같음을 확인했습니다. 카메라/갤러리를 시작하려고하면 갤러리가 열리고 사진/Google +을 시작하려고하면 Google+가 열립니다.카메라 및 갤러리의 패키지 이름이 같습니다.

이 코드를 사용하여 앱 목록을 가져옵니다. 카메라에 관해서는

Intent i = new Intent(Intent.ACTION_MAIN, null); 
i.addCategory(Intent.CATEGORY_LAUNCHER); 
List<ResolveInfo> availableActivities = manager.queryIntentActivities(i, 0); 

, 난 앱 이름은 카메라이고 패키지 이름이 갤러리의 그이지만, 같은 일 많은 애플 리케이션이있을 수있을 때 카메라를 시작할 인 텐트를 사용할 수 있다는 것을 알고. 모든 앱에 일반화 된 솔루션이 있습니까?

PS : 이것은 그들이 동일한 패키지 이름을 가지고 있지만 I 앱 정보

for(ResolveInfo ri : availableActivities) { 
    AppItem app = new AppItem(); 
    app.setLabel(ri.loadLabel(manager)); 
    app.setName(ri.activityInfo.packageName); 
    quick_apps.add(app); 
} 

답변

1

무엇입니까 방법입니다,하지만 그들은 diffrent 이름을 가지고,이 당신에게 시작하는 활동을 시도, 활동을 시작하는 아래의 코드를 사용

Intent localIntent = new Intent(); 
    localIntent.setComponent(new ComponentName(
      localResolveInfo.activityInfo.packageName, 
      localResolveInfo.activityInfo.name)); 
    localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    try 
    { 
     startActivity(localIntent); 
    } catch (ActivityNotFoundException localActivityNotFoundException) 
    { 
     Toast.makeText(mContext, "Package not found!", 0).show(); 
    } 
+0

감사합니다. –

+0

도움이 되셨습니다. :) – user3186605