2013-08-10 7 views
0

나는 설치된 응용 프로그램을 모두 나열하는 ListApp 활동을 가지고 있습니다. 여기서 내가하려고하는 것은 사용자가 목록에서 선택한 응용 프로그램에 대한 인 텐트/정보를 얻어야하는 응용 프로그램을 선택할 때입니다 사용자가 button1을 클릭하면 이전에 선택했던 앱을 (이전에 검색 한 인 텐트의 도움으로) 열어야합니다.의도로 활동 시작

ListApp 활동 :

@Override 
public void onClick(View arg0) { 
    // TODO Auto-generated method stub 

    switch (arg0.getId()){ 

    case R.id.button1: 

     //startActivity(app.intent); 
     //should start app with the help of info received by selecting app from the list 
     break; 
    } 


    @Override 
public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 

//ApplicationInfo app = (ApplicationInfo) parent.getItemAtPosition(position); 
    //startActivity(app.intent);   

//instead of launching app, I would like to get the info about the selected app & use it(start app) when clicking button1 
} 

ApplicationInfo

class ApplicationInfo { 

CharSequence title; 
Intent intent; 
Drawable icon; 
boolean filtered; 

    final void setActivity(ComponentName className, int launchFlags) { 
    intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_LAUNCHER); 
    intent.setComponent(className); 
    intent.setFlags(launchFlags); 
    } 
} 

감사합니다 모든 사람 :

+2

무엇이 문제입니까/문제입니까? –

답변

0

앱의 패키지 이름을 알고있는 경우 목록에서 인덱스의 활동 정보를 가져옵니다.

List<ResolveInfo> rInfo = getPackageManager().queryIntentActivities(new Intent(Intent.ACTION_MAIN),MATCH_DEFAULT_ONLY); 

for(ResolveInfo resolveInfo:rInfo){ 
    if(resolveInfo.activityInfo.packageName.equals("package")){ 

resolve info에서 구성 요소를 설정하십시오.

 ComponentName chosenName = new ComponentName(
     resolveInfo.activityInfo.packageName, 
     resolveInfo.activityInfo.name); 
     break; 
    } 
} 

final Intent intent = new Intent(Intent.ACTION_MAIN, null); 
intent.addCategory(Intent.CATEGORY_LAUNCHER); 
intent.setComponent(chosenName); 
startActivity(intent); 

위와 같이 구성 요소를 설정하십시오. API 레벨 1에서

공공 ComponentName (문자열 PKG, 문자열 CLS는)

추가 된 새로운 구성 요소 식별자를 만듭니다.

매개 변수 pkg 구성 요소가있는 패키지의 이름 null 일 수 없습니다. cls 이 구성 요소를 구현하는 pkg 내부 클래스의 이름입니다. null 일 수 없습니다.

+0

@Ritesh 예를 들자면 사용자가 목록에서 브라우저 응용 프로그램을 선택하고 사용자가 button1을 클릭하면 브라우저 응용 프로그램을 열어야한다고 말할 수 있습니다. 사실 button1은 다른 활동을하고 있는데, 나는 그것을 단순하게 유지하려고 노력했다. 희망이 도움이됩니다. – user2551070

+0

먼저 코드를 작성하는 데 시간을내어 주신 Tarun에게 감사드립니다. 코드가 "com.example"패키지에서 "활동"을 여는 것이 아닌지 사용자가 선택하면 계산기 앱을 말할 수 있습니다. 감사합니다 – user2551070

+0

내 업데이트 된 답변 u는 – Tarun