Android переопределить явное намерение - PullRequest
4 голосов
/ 07 марта 2009

Мое приложение должно иметь intent-filter, которое отвечает на Intent, для которого установлен его компонент (явное намерение). Вот пример.

Intent i = new Intent();
i.setClassName("com.compareeverywhere","com.compareeverywhere.ScanActivity");
startActivity(i);

Простой intent-filter не подойдет - поскольку Intent создан для определенного компонента (Activity,), он просто запускает его, не ища намерений вообще. Есть ли способ сделать это?
Спасибо, Исаак Уоллер
П.С .: Пожалуйста, не отвечайте «Нет».

1 Ответ

14 голосов
/ 22 марта 2009

номер

:) При этом, представьте себе, что произойдет, если Android позволит людям угонять Intents для определенных компонентов. Не нравится приложение конкурента? Просто надо твой угнать свою главную активность с вашим собственным, чтобы показать порно. Intents может указывать конкретные компоненты именно потому, что авторы не хотят, чтобы другие могли их заменить.

У вас есть два варианта. Если это ваш собственный код, замените его на общее намерение или если оно принадлежит кому-то другому, свяжитесь с ним и попросите его сменить его на общее намерение вместе с некоторыми вескими причинами, почему это необходимо.

...