Я был смущен тем, как это работает для цитаты некоторое время назад - когда я нажимаю ссылку, скажем, в браузере (например, Chrome) и получаю диалоговое окно «открыть с помощью», если хотите, если я решил сохранить значение по умолчанию для ссылки на карты Google это установит по умолчанию ВСЕ ссылки на карты Google, эту конкретную ссылку, или я что-то упустил?
Я часто боюсь устанавливать значения по умолчанию, потому что я не совсем понимаю, для чего я на самом деле устанавливаю значения по умолчанию — для доменного имени?
Я был бы признателен за любые советы, ссылки на документацию или предложения приложений, чтобы сделать это более понятным для меня. Спасибо!
Краткий ответ: да, это для всех ссылок Google Maps.
Длинный ответ заключается в том, что механизм намерений Android (то, как Android решает, какое приложение запускать) может использовать разные части URL-адреса для соответствия приложению. Приложение может зарегистрироваться в Android для обработки:
market://
youtube.com
/users/*
Приложения также могут фильтровать другие вещи, не имеющие отношения к переходу по ссылке, такие как различные действия (например, совместное использование) или разные типы MIME. Одно приложение может иметь более одного фильтра, и один фильтр может соответствовать любой комбинации вышеперечисленных вещей. Например, приложение YouTube может иметь один фильтр, который соответствует всем этим условиям:
http://
илиhttps://
youtube.com
watch?v=*
и другой, который соответствует при соблюдении всех этих условий:
http://
илиhttps://
youtu.be
(домен для коротких URL)В этом случае необходимо установить два разных значения по умолчанию: при первом нажатии на ссылку http://www.youtube.com/watch?v=DJRFaR71HfY
будет установлено значение по умолчанию для этого типа ссылки. Затем, если вы позже нажмете на http://youtu.be/DJRFaR71HfY
, он спросит второй раз, потому что это считается ссылкой другого типа.
В случае Google Maps существует несколько различных типов ссылок, которые он может обрабатывать (а также другие фильтры намерений, не относящиеся к ссылкам):
geo://*
latitude://*
http://maps.google.tld/
или https://maps.google.tld/
(ничего после /
) для каждого TLD, который есть у Google (google.com, google.fr и т. д.)http://maps.google.tld/maps*
илиhttps://maps.google.tld/maps*
http://mapy.google.pl/
или https://mapy.google.pl/
("mapy" по-польски означает "карты")http://mapy.google.pl/maps*
илиhttps://mapy.googl.pl/maps*
http://local.google.com/
илиhttps://local.google.com/
http://local.google.com/maps*
илиhttps://local.google.com/maps*
http://m.google.com/latitude
илиhttps://m.google.com/latitude
http://www.google.com/latitude
илиhttps://www.google.com/latitude
http://m.google.com/u/m/*
илиhttps://m.google.com/u/m/*
Каждая из этих строк считается ссылкой другого типа, поэтому Android спросит еще раз. Кроме того, все, кроме первого, имеют две отдельные записи: одну для открытия или просмотра ссылки обычным способом, а другую для сканирования метки NFC (или получения Android Beam) соответствующей ссылки. Опять же, эти две вещи считаются разными ссылками для целей установки значений по умолчанию.
Чтобы получить эту информацию из приложения Google Maps, я использовал приложение PackageExplorer . Информация, которую он дает вам, требует некоторых знаний для интерпретации: вам может пригодиться руководство по API намерений Android для разработчиков .
Иззи
Дэн Халм
Иззи
text/html
), когда доступно несколько браузеров, так что это каким-то образом кажется исключением?