14

我目前正在嘗試瞭解Android即時應用。由於我沒有任何支持它們的真實設備,因此我使用了模擬器(來自Android Studio 3.0 Canary 9)。我可以在我的模擬Nexus 5x(帶Play商店)上成功運行「玩具」即時應用程序(like this),所以我相信我的開發環境配置正確。是否有可能在仿真設備上發現並運行第三方Android即時應用程序?

但是,我很想了解第三方應用程序的發現過程,並瞭解用戶體驗是什麼樣的。由於缺乏適合自己的設備,我使用仿真的Chrome瀏覽器來搜索啓用了即時應用程序的站點(如Stack Exchange)。但是這些搜索只能給我通常的網站(不是即時應用程序)。

我讀this post很感興趣,因爲它似乎暗示這個應該工作。但是,這些答案似乎沒有幫助我。

  • 我在澳大利亞,應該是one of the countries where Instant Apps are supported
  • 正如一個答案中的建議,我試着發送應該在電子郵件中的即時應用中打開的鏈接,然後點擊它們,但它仍然只是發送給我的瀏覽器鏈接。
  • 有關DAL驗證的答案很有趣,但在瀏覽器中打開鏈接時似乎並不適用。

的API 24和API 26模擬設備(兩者都包括Play商店) 目前在有些不同的條件,可能是因爲我一直在嘗試各種技巧,使其工作。 (TLDR:沒有什麼是爲我工作。)

  • 在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裝置在屏幕的說:「發展模式激活」頂部的「閃電」通知:URLs will be routed to Dev Manager in order to launch Instant Apps locally. Uninstall Dev Manager to disable Development Mode.

  • 在API 24設備,設置 - >谷歌 - >即時應用,即時應用程序設置爲true

  • 在API 26模擬設備,如果我鍵入adb shell pm list packages grep "com.google.android.instantapps.supervisor"返回任何

  • 在API 26設備,Google Play services for Instant Apps沒有安裝,並沒有任何「閃電「通知ñ無論是

  • 在API 26設備,設置 - >谷歌沒有列出即時應用程序(所以沒有什麼設置)

這裏有一些額外的細節,如果他們是相關的:

  • 我的機器運行的是Windows 10 (沒有選擇的餘地)
  • 的模擬設備的Nexus 5X(API 24 26)與Play商店
  • 我也嘗試過「x86」圖像,因爲有些人推薦他們用於Windows,但他們也沒有工作。 (這可能是因爲「X86」圖片沒有附帶Play商店,我認爲這是Instant Apps所必需的)
  • 我在仿真設備上登錄了真實的Google用戶帳戶。

有了我現在設置的開發環境,我可以繼續開發自己的即時應用程序,將其部署到我自己的仿真設備上,並對其進行測試。我真的很想看看別人的即時應用程序的工作原理。另一篇文章(上面提到)建議我應該能夠做到這一點。

所以這裏是我的問題:是否有可能在仿真設備上發現並打開第三方即時應用(如果可以,如何)?

+0

您的設備上是否安裝了Play Market? – Idolon

+0

是的,這兩個模擬器都是Play Store的版本。 –

+1

電子郵件鏈接將不起作用,因爲您必須在服務器上載一段數據,然後觸發打開您的應用程序的特定行爲。我認爲可以肯定的是,只有在其他瀏覽器趕上之前,Chrome才能使用Chrome。 – Fabio

回答

6

是否有可能在仿真設備上發現並打開第三方即時應用(如果是這樣,如何)?

目前沒有。 :(有安全限制阻止仿真設備使用各種Google服務,如果您檢查日誌,可能會發現類似於「io.grpc.StatusException:INVALID_ARGUMENT:應用程序憑證標頭無效的消息,請修復客戶端到通過有效的應用程序憑據頭。」

在API 26模擬設備,如果我鍵入亞行殼時許列表包用grep‘com.google.android.instantapps.supervisor’沒有返回

FYI ,Supervisor不適用於Android O.因此

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

,當:

+0

哦,謝謝你的回答(儘管這是個壞消息)。同時感謝您解釋API 26模擬器發生的一些事情,因爲這讓我瘋狂。我會再等幾天,然後給這個答案貼上正確的答案(並獎勵賞金),以防其他人提出答案,我可能會更喜歡 –

4

啓用Android的即時應用應用鏈接助理,要直接啓動(或在您的網站信息)的活動得到如下修改你得到第三方應用程序,你必須修改AndroidManifest.xml文件如上。

而且,爲了能夠鏈接您的即時活動(如爲,AboutActivity),你有你的網站的根文件夾的。好了已知文件夾內生成assetlinks.json保存爲<your_web_site>/.well-known/assetlinks.json

有一個反向工程工具,可讓您修改AndroidManifest.xml文件。

注意:由於您不需要uses-permission即時應用程序的標籤,因此您不需要辭職。

如你不處理應用鏈接的意圖,你不需要

// 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第三方應用瞬間。如果我誤解了你的問題,我很抱歉。

+0

感謝您的有趣評論。這看起來很有用!但是,我問的是,是否有可能發現/嘗試像典型最終用戶那樣的即時應用程序(使用仿真設備)。 –

相關問題