0

У меня есть приложение, установленное на эмуляторе Android. Код ниже. Когда я запускаю эмулятор, я набираю браузер «market.android.com», и я хочу, чтобы мое приложение было запущен, но он не запуститсяЗапуск приложения для Android из сети

Ответ, пожалуйста, правильная работа приложения может быть предоставлена ​​эмулятором или необходимо использовать реальное устройство? (точно для запуска приложения из веб-браузера Android)

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
    <data android:scheme="http" android:host="market.android.com" 
     android:path="/search" /> 
</intent-filter> 

В качестве альтернативы существует схема «намерения:». Это позволяет вам описать практически любое намерение как URI, которое браузер попытается запустить при нажатии. Чтобы построить такую ​​схему, лучший способ - просто написать код для создания намерения, который вы хотите запустить, а затем распечатать результат намерения.toUri (Intent.URI_INTENT_SCHEME).

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

Лучший способ использовать это, если вы хотите, чтобы он запускал только ваше приложение, связано с вашим собственным действием с областью действия и с использованием Intent.setPackage(), чтобы сказать, что намерение будет соответствовать вашему приложению.

Компромиссы между ними:

HTTP URI, требуют у вас есть домен вы владеете. Пользователь всегда будет иметь возможность показывать URI в браузере. Он имеет очень хорошие свойства возврата, если приложение не установлено, они просто приземляются на ваш веб-сайт.

Устройства URI требуют, чтобы ваше приложение уже было установлено и только на телефонах Android. Разрешить почти любые намерения (но всегда включать категорию BROWSABLE и не поддерживать явные компоненты). Они позволяют вам запускать запуск только в ваше приложение, если у пользователя нет возможности переходить в браузер или любое другое приложение.

Спасибо за любую помощь (и фрагменты кода)

ответ

0

Когда я запускающее эмулятор, я печатаю «market.android.com», и я хочу, чтобы мое приложение будет запущен, но это Безразлично 't start

В этом сценарии не предполагается, что при «набрав» вы подразумеваете «ввод в адресную строку». Браузеры обычно соблюдают эти виды структур <intent-filter> только для гиперссылок.

Ответ, пожалуйста, правильная работа приложения может быть предоставлена ​​эмулятором или необходимо использовать реальное устройство?

Если вы используете гиперссылку, она должна работать на эмуляторе.

+0

@ user2331971: У вас есть веб-страница с гиперссылкой. – CommonsWare

0

Я предполагаю, что вы в одном шаге от открытия своего приложения. Не вводите URL-адрес в браузере, вы должны иметь URL-адрес в другом месте. Скажем, в СМС. У вас будет какой-то текст и ссылка «http://market.android.com». При нажатии на эту ссылку вы должны увидеть диалог с возможностью открыть его с помощью браузера или приложения.

Извините, если я неправильно понял вопрос.

+0

... вы правы, но если у меня есть ссылка (даже в смс), я хочу начать с нее приложение – Roman

+0

Я не вижу здесь проблемы. Вы должны увидеть свой вариант приложения в диалоговом окне. Просто нажмите на него, и ваше приложение запустится. – lomza

Смежные вопросы