2013-08-10 2 views
0

У меня есть активность ListApp, в которой перечислены все установленные приложения, что я пытаюсь сделать здесь, когда пользователь выбирает приложение из списка, которое должно получить намерение/информацию о выбранном приложении, а теперь когда пользователь нажимает кнопку1, он должен открыть приложение (с помощью намерения, полученного ранее), которое было выбрано ранее.Запуск с намерением

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); 

Комплект компонентов, как указано выше.

общественный ComponentName (String упак, Струнный ЦБС)

Добавлены в уровне API 1 Создайте новый идентификатор компонента.

Параметры pkg Имя пакета, в котором находится данный компонент. Не может быть пустым. cls Имя класса внутри pkg, которое реализует компонент. Не может быть null.

+0

@Ritesh Позвольте мне привести пример, скажем, пользователь выбирает приложение браузера из списка, а теперь, когда пользователь нажимает кнопку button1, он должен открыть приложение для браузера. На самом деле button1 находится на какой-то другой деятельности, я просто старался держать ее простой. Надеюсь это поможет. – user2551070

+0

Прежде всего, спасибо Таруну за то, что вы нашли время, чтобы написать код, а не код открывает «активность» из пакета «com.example», что если пользователь выбирает, скажет приложение калькулятора. Спасибо – user2551070

+0

Проверьте, не обновил ли мой обновленный ответ u – Tarun

Смежные вопросы