2013-03-21 3 views
0

나는 기본 홈 응용 프로그램을 얻으려면 name.For이 나는이 com.android.internal.app.ResolverActivity를 반환하고 내가 시도 할 때 기본 가정용 응용 프로그램을 얻는 방법은 무엇입니까?

List<RunningTaskInfo> runningTasks =((ActivityManager) getApplicationContext().getSystemService("activity")).getRunningTasks(1); 
    if (runningTasks != null && !runningTasks.isEmpty()) { 
     for (int i = 0; i < runningTasks.size(); i++) { 
      RunningTaskInfo runningtaskinfo = (RunningTaskInfo) runningTasks.get(i); 

     } 
    } 

집 이름을 가지고 다음

Intent intent = new Intent("android.intent.action.MAIN"); 
     intent.addCategory("android.intent.category.HOME"); 
     intent.addCategory("android.intent.category.DEFAULT"); 
     ResolveInfo resolveinfo =getApplicationContext().getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY); 
defaultHomeName = resolveinfo.activityInfo.name; 

을 사용 홈 화면에서 com.sec.android.app.twlauncher.Launcher을 입력합니다.

동일한 응용 프로그램이 다른 이름을 표시하는 이유 모든 장치의 기본 홈 응용 프로그램에 고유 한 이름을 얻는 방법은 무엇입니까?

답변

1

동일한 응용 프로그램이 다른 이름을 표시하는 이유는 무엇입니까?

그들은 동일한 응용 프로그램이 아니기 때문에.

특히 com.android.internal.app.ResolverActivity은 해결 자 활동으로, 활동 선택기 또는 간단히 "선택자"로 표시되는 경향이 있습니다. Intent을 처리 할 수있는 활동이 두 개 이상 있기 때문에 이는 resolveActivity()에 해당합니다.

모든 장치의 기본 가정용 응용 프로그램에 고유 한 이름을 얻는 방법은 무엇입니까? 대신 resolveActivity()의, PackageManagerqueryIntentActivities()를 사용하여

, 당신은 설치된 모든 홈 화면의 목록을 얻을 것이다. 이 목록에 하나 이상의 항목이있는 경우 자신의 홈 화면을 필터링 한 후 (하나 작성해야 함) "기본 홈 응용 프로그램"중 어느 항목인지를 결정하는 확실한 방법이 없습니다.

관련 문제