14

Aktualnie próbuję poznać aplikacje błyskawiczne na Androida. Ponieważ nie posiadam żadnych prawdziwych urządzeń, które je obsługują, używam emulatora (z Android Studio 3.0 Canary 9). Mogę z powodzeniem uruchamiać aplikacje "zabawkowe" (like this) na moim emulowanym Nexusie 5x (ze Sklepem Play), więc uważam, że moje środowisko programistyczne jest poprawnie skonfigurowane.Czy można odkryć i uruchomić niezależne aplikacje błyskawiczne na Androida na emulowanym urządzeniu?

Jednak byłem ciekawy, jak dowiedzieć się o procesie wykrywania aplikacji innych firm i dowiedzieć się, jak wygląda użytkownik. Nie mając odpowiedniego urządzenia, użyłem emulowanej przeglądarki Chrome do wyszukiwania witryn (takich jak Stack Exchange), które mają włączone natychmiastowe aplikacje. Ale te wyszukiwania dają mi tylko zwykłe strony internetowe (a nie aplikacje błyskawiczne).

Przeczytałem this post z dużym zainteresowaniem, ponieważ wydaje się sugerować, że to powinno działać. Jednak odpowiedzi te nie pomogły mi.

  • Jestem w Australii, która powinna być one of the countries where Instant Apps are supported.
  • Zgodnie z sugestią jednej odpowiedzi, próbowałem wysyłać linki, które powinny się otwierać w aplikacjach błyskawicznych w wiadomościach e-mail, a następnie je klikać, ale nadal wysyłają mnie do łącza przeglądarki.
  • Odpowiedź na pytanie o weryfikację DAL jest interesująca, ale wydaje się, że nie powinna mieć zastosowania przy otwieraniu linków w przeglądarce?

emulowane urządzenia API API 24 i 26 (oba należą do Sklepu Play) są obecnie w nieco odmiennych warunkach, prawdopodobnie dlatego próbowałam różnego rodzaju sztuczek, aby to działało. (TLDR: Nic nie działa dla mnie.)

  • Na API 24 emulowane urządzenia, jeśli wpisuję adb shell pm list packages grep "com.google.android.instantapps.supervisor" następnie wyprowadza package:com.google.android.instantapps.supervisor jako jeden sugeruje odpowiedź (ale jeszcze nie działa).

  • Urządzenie z interfejsem API 24 ma zainstalowaną Google Play services for Instant Apps (version 1.9-sdk-155682639).

  • API 24 Urządzenie posiada "błyskawicy" powiadomienia na górze ekranu napisem "Tryb Development aktywny": URLs will be routed to Dev Manager in order to launch Instant Apps locally. Uninstall Dev Manager to disable Development Mode.

  • Na urządzeniu API 24, Ustawienia -> Google -> błyskawiczne Aplikacje, błyskawicznych aplikacje jest ustawiona na true

  • na API 26 emulowane urządzenia, jeśli wpisuję adb shell pm list packages grep "com.google.android.instantapps.supervisor" zwraca nic

  • na urządzeniu API 26, Google Play services for Instant Apps nie jest zainstalowany, i nie ma żadnych „piorun "notificatio n albo

  • Na urządzeniu API 26, Ustawienia -> Google nie wymienia błyskawiczne Apps (więc nie ma nic do ustawiania)

Oto kilka dodatkowych szczegółów, w przypadku są one istotne:

  • moim komputerze deweloperskim działa system Windows 10 (nie z wyboru)
  • emulowane urządzenia są Nexus 5x (API 24 i 26) z Play Store
  • Próbowałem również obrazów "x86", ponieważ niektóre osoby zalecały je do systemu Windows, ale nie działały. (Może się tak zdarzyć, ponieważ obrazy "x86" nie pochodzą ze Sklepu Play, co moim zdaniem jest wymagane w przypadku Aplikacji błyskawicznych?)
  • Jestem zalogowany na prawdziwym koncie użytkownika Google na emulowanych urządzeniach.

Dzięki środowisku programistycznemu, które skonfigurowałem już teraz, mogę nadal tworzyć własną aplikację błyskawiczną, wdrażać ją na emulowanych urządzeniach i testować. Byłem naprawdę ciekawy, jak działają aplikacje błyskawiczne innych ludzi. I kolejny post (link powyżej) sugerował, że powinienem być w stanie to zrobić.

Oto moje pytanie: czy można wykrywać i otwierać aplikacje błyskawiczne innych firm na emulowanym urządzeniu (a jeśli tak, to w jaki sposób)?

+0

Czy masz zainstalowany Play Market na swoim urządzeniu? – Idolon

+0

Tak, oba emulatory to wersje ze Sklepem Play. –

+1

Łącza do e-maili nie będą działać, ponieważ musisz przesłać na serwer dane, które spowodują określone zachowanie, które spowoduje otwarcie aplikacji. Myślę, że z tego można bezpiecznie wynikać, że będzie działać tylko w Chrome, dopóki inne przeglądarki nie nadrobią zaległości. – Fabio

Odpowiedz

6

Czy można wykrywać i otwierać aplikacje błyskawiczne innych firm na emulowanym urządzeniu (a jeśli tak, to w jaki sposób)?

Obecnie nie. :(Istnieją ograniczenia bezpieczeństwa uniemożliwiające emulowanym urządzeniom korzystanie z różnych usług Google. Jeśli sprawdzisz dziennik, możesz znaleźć komunikat podobny do "io.grpc.StatusException: INVALID_ARGUMENT: Nagłówek poświadczeń aplikacji jest nieprawidłowy. Napraw klienta przekazać poprawny nagłówek poświadczeń aplikacji.”

na API 26 emulowane urządzenia, jeśli wpisuję adb shell lista pm pakiety grep "com.google.android.instantapps.supervisor" zwraca nic

FYI , Supervisor nie jest używany w Androidzie O.

+0

Och, dziękuję za odpowiedź (mimo że to złe wieści). Dziękuję także za wyjaśnienie części tego, co działo się z emulatorem API 26, ponieważ to doprowadzało mnie do szału. Zaczekam jeszcze kilka dni przed poprawieniem tej odpowiedzi (i przyznaniem nagrody), na wypadek, gdyby ktoś inny podszedł do mnie z odpowiedzią, którą mógłbym polubić. –

4

Po włączeniu Android Natychmiastowy App z linku aplikacji Assistant, swoją aktywność, że chcesz, aby bezpośrednio uruchomić (lub posiadają informacje na swojej stronie internetowej) zostaje zmodyfikowane jak poniżej:

<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> 

Stąd, gdy otrzymujesz aplikacje innych firm, musisz zmodyfikować plik AndroidManifest.xml jak wyżej.

A, aby być w stanie połączyć swoje natychmiastowe działanie (dla np, AboutActivity), trzeba zapisać wygenerowany assetlinks.json wewnątrz folderu .Dobrze znane z katalogu głównego strony jako <your_web_site>/.well-known/assetlinks.json

Istnieje odwrotna narzędzie inżynierskie, które pozwala modyfikować plik AndroidManifest.xml.

Uwaga: jako że nie potrzebujesz tagu uses-permission dla aplikacji błyskawicznych, nie musisz go składać.

jak nie jesteś obchodzenia AppLink intencji, nie trzeba

// ATTENTION: This was auto-generated to handle app links. 
Intent appLinkIntent = getIntent(); 
String appLinkAction = appLinkIntent.getAction(); 
Uri appLinkData = appLinkIntent.getData(); 

Więc up to my understanding, możliwe jest uruchomienie innych firm Aplikacje Android błyskawicznych na obsługiwanych urządzeniach emulatorze. Przepraszam, jeśli źle zrozumiałem twoje pytanie.

+0

Dziękuję za interesujący komentarz. To wygląda na przydatną sztuczkę! Pytałem jednak o to, czy można odkryć/wypróbować aplikacje błyskawiczne, takie jak typowy użytkownik końcowy (używając emulowanego urządzenia). –