Как сделать Android-приложение стандартным для файлового типа? - PullRequest
1 голос
/ 07 июня 2010

Мне нужно, чтобы мое приложение было действием по умолчанию для открытия файла определенного типа. Как мне это контролировать? Кроме того, как мое приложение может получить доступ к открываемому файлу?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 07 июня 2010

Посмотрите на android.content.Intent.

Intent предоставляет средство для позднего связывания во время выполнения между кодом в разных приложениях. Его наиболее важное применение - запуск мероприятий, где его можно рассматривать как связующее звено между действиями. По сути, это пассивная структура данных, содержащая абстрактное описание выполняемого действия. Основными частями информации в намерении являются:

действие - общее действие, которое должно быть выполнено, например ACTION_VIEW, ACTION_EDIT, ACTION_MAIN и т. Д.

data - данные, с которыми нужно работать, например, запись о человеке в базе данных контактов, выраженная в виде Uri.

Ваша деятельность может получить намерение, которое ее запустило, позвонив по номеру Activity#getIntent(), а затем с помощью Intent#getData() определить URL открываемых данных.

В вашем манифесте должно быть указано, что одно из ваших действий может просматривать данные определенного типа с использованием элемента <intent-filter>. Если пользователь попытается просмотреть данные такого рода, система определит, какие действия должны быть обработаны всеми приложениями в системе.

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

Как отметил Эйдан, нет способа взломать дефолт. Пользователь должен выбрать приложение по умолчанию для обработки данных этого типа.

0 голосов
/ 07 июня 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...