Отправить намерение из списка просмотра с помощью службы - PullRequest
1 голос
/ 12 марта 2012

Я создаю приложение, которое использует менеджер пакетов, чтобы найти все приложения на вашем телефоне и отобразить его в виде списка.На данный момент он только открывает приложение, но я хочу отправить намерение другому классу, использующему службу и вещательный приемник.Идея состоит в том, чтобы создать ярлык, который запускает выбранное приложение одним нажатием кнопки в другом классе.Вот мой код:

protected void onListItemClick(ListView l, View v, int position, long id) {
ResolveInfo launchable=adapter.getItem(position);
ActivityInfo activity=launchable.activityInfo;
ComponentName name=new ComponentName(activity.applicationInfo.packageName,
                                     activity.name);
Intent i=new Intent(Intent.ACTION_MAIN);


i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
           Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
i.setComponent(name);

startActivity(i);    

} Я хочу, чтобы сервис можно было изменить, просто щелкнув другое приложение в списке.Я также хочу, чтобы это было сохранено на телефоне.

Есть ли способы сделать это?

1 Ответ

0 голосов
/ 14 декабря 2012

Я решил эту проблему, создав SharedPrference, содержащее имя пакета. Преодолев его с помощью try-catch, мне удалось запустить приложение, если это возможно, и не дать сбой, если нет. Чтобы «удалить» выделение, я просто изменяю Prefrence на «», или что-то, что не является именем пакета.

...