Запуск установленного приложения из моего приложения

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
            //String s1 = ?
    Intent i = new Intent();
    PackageManager manager = getPackageManager();
    i = manager.getLaunchIntentForPackage(packageName);
    i.addCategory(Intent.CATEGORY_LAUNCHER);
    startActivity(i);

}

РЕДАКТИРОВАТЬ: Я видел, что если мы напишем имя пакета приложения вместо packageName в кавычках, то это приложение откроется. я имею в виду

i = manager.getLaunchIntentForPackage("com.android.mms");

вместо

i = manager.getLaunchIntentForPackage(packageName);

Итак, я хочу определить строку s, которая получит имя пакета приложения, выбранного на основе позиции. Как я могу это сделать?

Это не дубликат, потому что я все это пробовал. Я просто хочу знать, как отредактировать приведенный выше код и получить то, что хочу.


person vishalmullur    schedule 17.07.2013    source источник
comment
Где вы устанавливаете packageName, packageName должно быть именем пакета других приложений.   -  person faylon    schedule 17.07.2013
comment
Ваш packageName, похоже, не зависит от того, что пользователь щелкает в списке.   -  person CommonsWare    schedule 17.07.2013
comment
Как я могу сделать это надежным?   -  person vishalmullur    schedule 17.07.2013
comment
Я получаю packageName из другого действия. В настоящее время он отображается как com.android.mms   -  person vishalmullur    schedule 17.07.2013
comment
stackoverflow.com/questions/2780102 /   -  person Yarh    schedule 17.07.2013
comment
Я перепробовал все варианты по этому поводу. Я думаю, что он открывает настройки, потому что это первое приложение в списке.   -  person vishalmullur    schedule 17.07.2013
comment
Я отредактировал код @CommonsWare. Подскажите, пожалуйста, что я могу сделать. Это было бы действительно полезно. Спасибо.   -  person vishalmullur    schedule 17.07.2013
comment
Вы должны использовать параметр позиции, который возвращает элемент, по которому щелкнули. Если packageName - это список ArrayList со всеми именами пакетов в нем, попробуйте packageName.get (position)   -  person chr.solr    schedule 17.07.2013
comment
Не могли бы вы показать в приведенном выше коде, где мне нужно это написать?   -  person vishalmullur    schedule 17.07.2013
comment
Пожалуйста, взгляните на мой отредактированный вопрос. Благодарность   -  person vishalmullur    schedule 17.07.2013
comment
Что такое переменная packageName?   -  person chr.solr    schedule 18.07.2013
comment
packageName = list.get (позиция) .activityInfo.packageName;   -  person vishalmullur    schedule 18.07.2013
comment
Получил ответ. Его строка selectedFromList = (lv.getItemAtPosition (position));   -  person vishalmullur    schedule 20.07.2013