2012-01-27 2 views
2

저는 Android app, Tasker를 프로그래밍 중이며 다른 응용 프로그램의 레이블을 얻는 방법을 찾지 못했습니다. 이것은 내 요점은, 내가 설치된 응용 프로그램을 선택 ListActivity를 사용하고, 그때 당신이 의도와 모든 애플 리케이션 물건을 만드는 클릭하면 사용자에게 안드로이드를 보여주는 것입니다 : 응용 프로그램에서 레이블 선택한, 나는 ResolverInfo에서 .activityInfo.labelRes라는 속성을 발견하고, 사용자가 선택한 응용 프로그램의 R 클래스에 대한 레이블 설명자가 있다고 생각합니다. 어쨌든 그 ID와 일치하는 문자열을 얻으려고합니까 ??? 감사합니다. D.Gómez다른 응용 프로그램에서 android : 레이블 얻기

답변

4

ResolveInfoloadLabel(PackageManager) 메서드를 사용하여 활동 레이블을 가져올 수 있습니다.

// Get the package manager 
PackageManager pm = getPackageManager(); 
// Create an intent that matches all launcher activities 
// (and ignores non-launcher activities) 
Intent launcherIntent = new Intent(Intent.ACTION_MAIN); 
launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER); 

// Get all activites matching the intent 
List<ResolveInfo> launchers = pm.queryIntentActivities(launcherIntent, 0); 

for(ResolveInfo info : launchers) { 
    // Get the activity label and print it 
    CharSequence label = info.loadLabel(pm); 
    Log.v("LabelTest", "App found: " + label); 
} 

이 너무 귀하의 질문의 두 번째 부분에 대답하기 위해, 응용 프로그램의 리소스에 액세스에 대해 : 다음은 장치에있는 모든 런처 활동을 발견하고 로그 캣 그들을 인쇄하는 전체 예제입니다 그들은 호출하여 액세스 할 수 있습니다 getPackageManager().getResourcesForApplication(String)은 사용할 수있는 Resources 개체를 반환하지만 필요하지 않아야합니다.

+0

감사합니다. 그 작품! – DGomez

+0

다른 앱의 모든 리소스에 액세스 할 수 있다는 것을 알아두면 좋을 것입니다. 문제에 대한 일반적인 접근 방법입니다. 안드로이드 프로그래밍에 익숙하지 않으며 아직 API에 익숙하지 않습니다. 답변을 주셔서 감사합니다! – DGomez

관련 문제