Возможно ли открыть и запустить сторонние приложения Android Instant на эмулированном устройстве?
В настоящее время я пытаюсь узнать об Android-приложениях Android. Поскольку у меня нет реальных устройств, которые их поддерживают, я использую эмулятор (из Android Studio 3.0 Canary 9). Я могу успешно запустить "игрушечные" мгновенные приложения (как это) на моем эмулированном Nexus 5x (с Play Store), поэтому я считаю, что моя среда разработки правильно настроена.
Однако мне было интересно узнать о процессе обнаружения сторонних приложений и узнать, как выглядит пользователь. Не имея подходящего моего устройства, я использовал эмулированный браузер Chrome для поиска сайтов (например, Stack Exchange), которые включали мгновенные приложения. Но эти поиски дают мне обычные сайты (не мгновенные приложения).
Я с большим интересом читаю этот пост, потому что кажется, что это должно сработать. Однако эти ответы, похоже, не помогли мне.
- Я в Австралии, которая должна быть одна из стран, где поддерживаются Instant Apps.
- Как было предложено в одном ответе, я попытался отправить ссылки, которые должны открываться в мгновенных приложениях в электронной почте, а затем нажимать на них, но он по-прежнему просто отправляет мне ссылку на браузер.
- Ответ о проверке DAL интересен, но не кажется, что он должен применяться при открытии ссылок в браузере?
Эмулируемые устройства API 24 и API 26 (оба из которых включают Play Store)
в настоящее время находятся в несколько разных условиях, вероятно, потому, что я пытался использовать всевозможные трюки, чтобы заставить его работать. (TL;DR: Ничто не работает для меня.)
-
На эмулированном устройстве API 24, если я набираю adb shell pm list packages grep "com.google.android.instantapps.supervisor"
, тогда он выводит package:com.google.android.instantapps.supervisor
, как предлагает один ответ (но он все еще не работает).
-
У устройства API 24 установлено Google Play services for Instant Apps (version 1.9-sdk-155682639)
.
-
Устройство API 24 имеет уведомление "молния" в верхней части экрана с надписью "Режим разработки Active": URLs will be routed to Dev Manager in order to launch Instant Apps locally. Uninstall Dev Manager to disable Development Mode.
-
На устройстве API 24, Настройки → Google → Мгновенные приложения, для мгновенных приложений установлено значение true
-
На эмулированном устройстве API 26, если я набираю adb shell pm list packages grep "com.google.android.instantapps.supervisor"
ничего не возвращает
-
На устройстве API 26 Google Play services for Instant Apps
не установлен, и нет никакого уведомления о "молнии"
-
На устройстве API 26 в настройках → Google не отображается Instant Apps (так что нечего устанавливать)
Вот некоторые дополнительные сведения, если они актуальны:
- Моя машина разработки запускает Windows 10 (не по выбору)
- Эмулируемыми устройствами являются Nexus 5x (API 24 и 26) с Play Store.
- Я также пробовал изображения "x86", так как некоторые люди рекомендовали их для Windows, но они тоже не работали. (Возможно, это связано с тем, что изображения "x86" не поставляются с Play Store, которые, как мне кажется, необходимы для Instant Apps?)
- Я зарегистрировал реальную учетную запись пользователя Google на эмулируемых устройствах.
С созданной мной средой разработки я могу продолжить разработку своего собственного мгновенного приложения, развернуть его на своих собственных эмулируемых устройствах и протестировать его. Мне было просто любопытно посмотреть, как работают приложения для работы с другими людьми. И еще одно сообщение (связанное выше) предположило, что я должен это сделать.
Итак, вот мой вопрос: возможно ли открыть и открыть сторонние Instant Apps на эмулированном устройстве (и если да, как)?
Ответы
Ответ 1
Возможно ли открыть и открыть сторонние Instant Apps на эмулированном устройстве (и если да, как)?
В настоящее время нет.:( Существуют ограничения безопасности, позволяющие эмулированным устройствам использовать различные сервисы Google. Если вы проверите журнал, вы можете найти сообщение, подобное "io.grpc.StatusException: INVALID_ARGUMENT: Недопустимый заголовок учетных данных приложения. передать допустимый заголовок учетных данных приложения."
На эмулированном устройстве API 26, если я набираю adb shell pm list packages, grep "com.google.android.instantapps.supervisor" ничего не возвращает
FYI, Supervisor не используется для Android O.
Ответ 2
Когда вы включаете Android Instant App из App Link Assistant, ваша активность, которую вы хотите запустить непосредственно (или иметь информацию на своем веб-сайте), изменяется следующим образом:
<activity
android:name=".View.Activity.AboutActivity"
android:parentActivityName="com.example1.uddhav.stopwatch.View.Activity.AboutActivity">
<intent-filter android:autoVerify="true">
<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="your_web_address" />
</intent-filter>
</activity>
Следовательно, когда вы получаете сторонние приложения, вы должны изменить файл AndroidManifest.xml
, как указано выше.
И чтобы иметь возможность связать вашу мгновенную активность (например, AboutActivity), вы должны сохранить сгенерированный assetlinks.json
внутри .ws-известной папки корневой папки вашего сайта как <your_web_site>/.well-known/assetlinks.json
Существует обратное инженерное средство, которое позволяет вам изменять файл AndroidManifest.xml
.
Примечание. Поскольку вам не нужен тег uses-permission
для мгновенных приложений, вам не нужно его откладывать.
Поскольку вы не используете намерение AppLink, вам не нужно
// ATTENTION: This was auto-generated to handle app links.
Intent appLinkIntent = getIntent();
String appLinkAction = appLinkIntent.getAction();
Uri appLinkData = appLinkIntent.getData();
Итак, up to my understanding
, можно запускать сторонние приложения Android на поддерживаемых устройствах эмулятора. Прошу прощения, если я неправильно понял ваш вопрос.