Как получается, что это действие, которое в основном является именем пакета, может знать о начале действия?
Поскольку <intent-filter>
действия объявило, что оно может быть запущеночерез эту строку действия.Кстати, то, что оно написано как имя пакета, не означает, что оно должно быть именем пакета (например, android.intent.action.VIEW
не является пакетом).Соглашение об именовании пакетов - это предотвращение случайных столкновений с другими установленными приложениями.
Это действительно не имеет смысла, верно?
Ну, это, наверное, что-то значило для автора, хотя я не могу сказать, что именно.
Какую цель это служит?
В обычной разработке Android вы не создадите пользовательскую категорию.Я не могу вспомнить, чтобы когда-либо видел его, и я уже давно занимаюсь разработкой для Android.
Категории обычно используются для различения различных вариантов использования.Например, возможно, вторая по популярности категория, кроме DEFAULT
, равна BROWSABLE
.Действия, поддерживающие действие VIEW
в категории BROWSABLE
, могут использоваться по ссылкам в веб-браузере.Итак, если у меня было действие для VIEW
/ BROWSABLE
и тип MIME application/pdf
, и пользователь щелкнул ссылку в PDF-файле в браузере, я мог бы выбрать просмотр PDF.Однако, если бы мне не хватало BROWSABLE
в качестве категории, я бы не имел права на эту ссылку.Как правило, действие будет рекламировать BROWSABLE
, только если оно сможет получить URL-адрес HTTP.
В верхней части головы, я не могу вспомнить сценарий, в котором я бы использовал пользовательскую категорию.