14

私は現在、Androidインスタントアプリについて学んでいます。私はそれらをサポートする実際のデバイスを所有していないので、私はエミュレータを使用しています(Android Studio 3.0 Canary 9から)。エミュレートされたNexus 5x(Playストアで)で「おもちゃ」インスタントアプリ(like this)を正常に実行できるため、開発環境が正しく設定されていると思います。エミュレートされたデバイスでサードパーティのAndroid Instant Appsを検出して実行することはできますか?

しかし、私はサードパーティのアプリケーションの発見プロセスについて学び、ユーザーエクスペリエンスがどのようなものかを知ることができました。私自身の適切なデバイスがないと、エミュレートされたChromeブラウザを使用して、インスタントアプリが有効になっているサイト(スタックエクスチェンジなど)を検索しました。しかし、これらの検索では、通常のウェブサイト(インスタントアプリではない)のみが表示されます。

私はthis postを読んでいますが、これはになるはずです。しかし、それらの答えは私を助けてくれていないようです。

  • 私はオーストラリアにいます(one of the countries where Instant Apps are supported)。
  • 1つの答えで示唆されているように、私は電子メールでインスタントアプリで開いてからリンクをクリックするようにしましたが、それでもブラウザリンクに私を送ります。
  • DAL検証に関する回答は面白いですが、ブラウザでリンクを開くときに適用されるようには思われません。私はそれを動作させるためにトリックのすべての種類をしようとしてきたためか(Playストアが含まれ、どちらも)

API 24およびAPI 26エミュレートされたデバイス は、多少異なる条件に現在あります。私はadb shell pm list packages grep "com.google.android.instantapps.supervisor"を入力した場合、それは答えが示唆package:com.google.android.instantapps.supervisor 1として出力し、API 24エミュレートされたデバイスで

  • を:(TLDR。何も私のために働いていないです)(それはまだ動作しません)。

  • API24デバイスには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デバイス、設定 - >グーグル - >インスタントアプリ、私はadb shell pm list packages grep "com.google.android.instantapps.supervisor"戻りAPI 26デバイスには何も

  • は、Google Play services for Instant Appsがインストールされていない入力し、任意の「稲妻がない場合は、インスタントのアプリケーションは、API 26エミュレートされたデバイスでは、真の

  • に設定されています"告知nはどちらかのAPI 26デバイスで

  • は、設定 - > Googleがインスタントアプリが表示されない(ように設定するには何もない)

  • ここ

彼らは関連している場合には、いくつかの追加の詳細、次のとおりです。

  • 私の開発マシンは、Windows 10 (ない選択によって)を実行します
  • エミュレートされたデバイスは、ネクサス5倍(API 24とされています26)Play Storeで
  • また、「x86」イメージを試してみました。なぜなら、一部の人はWindows用に推奨していましたが、どちらも動作しませんでした。 (これは、「x86」の画像にPlayストアが付属していない可能性があります(インスタントアプリには必要と思われます)
  • エミュレートされたデバイスで実際のGoogleユーザーアカウントにログインしています。

私が今設定した開発環境では、自分のインスタントアプリケーションを開発し、自分のエミュレートされたデバイスに展開してテストすることができます。私は本当に他の人のインスタントアプリがどのように働いているのか興味があっただけです。そして、私はこれを行うことができるはずであることを示唆した別の投稿(上記リンク)。

これは私の質問です。エミュレートされたデバイスでサードパーティ製のインスタントAppsを見つけて開くことはできますか?

+0

お使いの端末にPlay Marketがインストールされていますか? – Idolon

+0

はい、どちらのエミュレータもPlayストアのバージョンです。 –

+1

電子メールリンクは機能しません。サーバー上にデータをアップロードする必要があるため、アプリケーションを開く特定の動作がトリガーされるためです。他のブラウザが追いつくまではChromeでしか動作しないことを暗示することは安全だと思います。 – Fabio

答えて

6

それが発見し、エミュレートされたデバイス上でサードパーティのインスタントアプリを開きます(もしそうなら、どのように)することは可能ですか?

現在のところ、 :(エミュレートされたデバイスがさまざまなGoogleサービスを使用するのを防ぐセキュリティ上の制限があります)ログを確認すると、「io.grpc.StatusException:INVALID_ARGUMENT:アプリケーション認証情報ヘッダーが無効です。有効なアプリケーションの資格情報のヘッダを渡す。」

をAPIで26は私が入力した場合のadbシェル午後リストパッケージはgrepし、デバイスをエミュレート "com.google.android.instantapps.supervisorは" FYI何

を返しませんスーパーバイザーはAndroid Oでは使用されません。

+0

ああ、答えに感謝します(悪いニュースでも)。 API 26エミュレータで何が起こっていたのかを説明してくれてありがとうございました。誰か他の人が回答を得た場合に備えて、ちょうどこの答えを正しく記入する前に私は数日待つでしょう。私は好きかもしれません。 –

4

アプリリンクアシスタントからアンドロイドインスタントのAppを有効にすると、あなたが直接(あなたのウェブサイト上の情報をか持っている)を起動したいあなたの活動は、以下のように変更されます:、

したがって
<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のために)、あなたは<your_web_site>/.well-known/assetlinks.json

として、Webサイトのルートフォルダの.well知られているフォルダ内に生成された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インスタントアプリを実行することが可能です。私はあなたの質問を誤解した場合はお詫び申し上げます。

+0

興味深いコメントをありがとう。それは便利なトリックのように見えます!しかし、一般的なエンドユーザーのように(エミュレートされたデバイスを使用して)即時アプリを発見/試用することが可能かどうかを尋ねていました。 –

関連する問題