Запустить Android-приложение из SMS/MMS-сообщения?

Можно ли запустить приложение с помощью URL-адреса, запущенного из приложения обмена сообщениями Android (SMS или MMS)?


person steve    schedule 21.06.2010    source источник


Ответы (3)


Нет, распознаются только следующие URL:

  • URL-адреса в Интернете.
  • Адрес электронной почты.
  • Телефонные номера.
  • Адреса карты.

Из TextView android:autoLink XML-атрибут.

person Macarse    schedule 21.06.2010
comment
как запустить приложение, поскольку набор URL-адресов будет пытаться открыть в браузере, я хочу запустить файл apk, щелкнув определенную ссылку, которая отправляется с другого устройства... - person kamal_tech_view; 31.10.2011

Предыдущий ответ был неверным.

Вы можете добавить фильтр намерений для действия, которое «зарегистрирует» ваше приложение для обработки гиперссылок в теле SMS.

Например, если вы добавите следующее намерение в ваш application.xml:

<intent-filter>
  <action android:name="android.intent.action.VIEW"></action>
  <category android:name="android.intent.category.DEFAULT"></category>
  <category android:name="android.intent.category.BROWSABLE"></category>
  <data 
    android:scheme="http" 
    android:host="test.com" 
    android:pathPrefix="/myapp">
  </data>
</intent-filter>

И вы отправляете SMS-сообщение со следующим текстом в теле:

http://test.com/myapp/somedata

Ваше приложение запустится, и действие сможет получить доступ к URL-адресу как части данных намерения.

person Adam Nemitoff    schedule 05.10.2010
comment
Это хороший ответ. Однако, когда я использую этот метод, он также показывает вариант всех браузеров, которые присутствуют на устройстве. Есть ли способ просто открыть мое приложение напрямую, вместо того, чтобы показывать пользователю различные параметры? - person Shobhit Puri; 28.03.2014
comment
когда я добавляю, это не сработало. Значок приложения из списка приложений исчезает, и вы нажимаете на ссылку в электронном письме, не открывая приложение вообще, оно открывает ссылку в самом браузере. - person Umesh Aawte; 23.12.2015
comment
@DineshSpartacus, я нашел выход, пожалуйста, отправьте мой ответ сюда - person Umesh Aawte; 24.12.2015
comment
Спасибо, что обновили меня ... но я уже нашел решение и успешно отредактировал свои проекты ... но еще раз спасибо - person Dinesh R Rajput; 04.01.2016
comment
Как заставить это работать на телефоне, на котором еще не установлено приложение? Скажем, например, приложение еще не опубликовано в магазине Google Play, но я хочу отправить ссылку на приложение своему другу, чтобы он мог его попробовать. - person jewbix.cube; 08.03.2016
comment
Я также получаю приглашение выбора приложения, даже если я вызываю test.com без /myapp . Как перенаправить на мое приложение, ТОЛЬКО если это конкретная конечная точка, например /myapp ? - person Adam Styrc; 19.07.2016
comment
@AdamStyrc Как ты это сделал в конце концов? - person Itay Feldman; 04.10.2018
comment
@ItayFeldman В конце концов я решил использовать branch.io — они гарантируют, что вы будете перенаправлены в магазин Google Play, если приложение не установлено :) - person Adam Styrc; 15.11.2018

Кроме того, ответ, данный @Adam,

В случае приложения для Android возможно несколько фильтров намерений, мы должны использовать два. Один для запуска приложения и один для запуска приложения с использованием URL-адреса в смс

<activity android:name="com.SomeActivity" adroid:theme="@style/MyTheme"
android:label="@string/app_name"> 
    <!-- For app launcher -->
    <intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
       <category android:name="com.YorAppPackage" />
    </intent-filter>
    <!-- To open app using link -->
    <intent-filter>
        <action android:name="android.intent.action.VIEW"></action>
        <category android:name="android.intent.category.DEFAULT"></category>
        <category android:name="android.intent.category.BROWSABLE"></category>
        <data android:scheme="http"
              android:host="yourdomain.com"
              android:pathPrefix="/someurlparam">
        </data>
    </intent-filter>
</activity>

Теперь добавьте URL-адрес в смс что-то вроде

http://yourdomain.com/someurlparam

Это должно запустить приложение по щелчку URL-адреса, а также добавит значок приложения в Android.

person Umesh Aawte    schedule 24.12.2015
comment
Спасибо. Это также сработало для меня с использованием пользовательской схемы, которая позволяет избежать упомянутой выше проблемы со списком всех открываемых браузеров. - person arlomedia; 04.02.2016
comment
@arlomedia Как вы разместили пользовательскую схему? он не позволит мне щелкнуть что-либо, что не начинается с http/https.. - person Itay Feldman; 04.10.2018
comment
Я включил <data android:scheme="myappname" /> в блок intent-filter. Но возможность нажатия на ссылку может зависеть от приложения SMS, которое отображает сообщение. - person arlomedia; 04.10.2018
comment
Да, все, что является частью другого приложения, вы не можете контролировать. - person Umesh Aawte; 08.10.2018