Намеренное разрешение в Android - PullRequest
4 голосов
/ 15 февраля 2010

Если я хочу создать собственную адресную книгу (которая переопределяет адресную книгу моего телефона по умолчанию), и если я хочу, чтобы она использовалась всеми приложениями, что должно быть моим intent-filter? Позволяет ли мне Android делать такие вещи, учитывая тот факт, что такое стороннее приложение потенциально может быть вредоносным ?!

И, если я хочу иметь еще одно приложение адресной книги, я полагаю, что второе приложение также имеет тот же intent-filter, не так ли? Как фреймворк решает, какое приложение выбрать, если я нажму кнопку «Контакты» во время звонка? Другими словами, как фреймворк разрешает намерения в случае конфликта между несколькими intent-filters?

Ответы [ 2 ]

3 голосов
/ 15 февраля 2010

Вы можете заменить любое приложение на платформе Android, даже Home. Документация Android объясняет все, что нужно знать о Intents и Intent Filters , и есть раздел под названием Intent Resolution , который отвечает на ваш вопрос. Раздел «Разрешение намерений» для класса «Намерение» содержит дополнительную информацию.

Насколько я могу судить, Android не пытается разрешить конфликт. Он спрашивает пользователя, какое приложение нужно запустить, и дает им возможность пометить это действие как заданное по умолчанию для этого намерения. Они приводят пример почтового приложения здесь .

0 голосов
/ 15 февраля 2010

Несмотря на то, что мистер Смильянич в основном прав, в Android нет приложения для контактов, которое вы бы могли заменить. Существует Dialtacts, который является приложением, поддерживающим контакты, журнал вызовов и номеронабиратель. Это приложение не может быть заменено, главным образом потому, что номеронабиратель не может быть заменен.

Таким образом, хотя вы можете переопределить некоторые фильтры намерений и получить контроль над некоторыми запросами, связанными с контактами, вы не сможете переопределить часть контактов в Dialtacts, что приведет пользователей в замешательство.

...