0

Android エミュレーターにアプリケーションをインストールしています コードは以下の通りです エミュレーターを起動するときに、ブラウザーに「market.android.com」と入力し、アプリケーションを起動したいのですが、起動しません

答えてください、アプリケーションの正しい動作はエミュレータによって提供される可能性がありますか、それとも実際のデバイスを使用する必要がありますか? (正確には、Android Web ブラウザーからアプリケーションを起動するため)

<intent-filter>
  <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="market.android.com"
        android:path="/search" />
</intent-filter>

別の方法として、"intent:" スキームがあります。これにより、ほぼすべてのインテントを URI として記述することができ、クリックするとブラウザが起動しようとします。このようなスキームを構築するための最善の方法は、起動するインテントを構築するコードを記述し、intent.toUri(Intent.URI_INTENT_SCHEME) の結果を出力することです。

この目的でアクションを使用して、そのアクションをサポートするアクティビティを見つけることができます。ブラウザは、セキュリティ上の理由から、インテントを起動する前に自動的に BROWSABLE カテゴリをインテントに追加します。また、同じ理由で指定した明示的なコンポーネントを削除します。

アプリのみを確実に起動する場合、これを使用する最善の方法は、独自のスコープ アクションを使用し、Intent.setPackage() を使用して、Intent がアプリ パッケージのみに一致することを示すことです。

2 つの間のトレードオフ:

http URI では、所有しているドメインが必要です。ユーザーは常に、ブラウザーに URI を表示するオプションを取得します。アプリがインストールされていない場合、アプリが Web サイトに表示されるという非常に優れたフォールバック プロパティがあります。

インテント URI では、アプリが Android スマートフォンにのみインストールされている必要があります。ほとんどすべてのインテントを許可します (ただし、常に BROWSABLE カテゴリが含まれており、明示的なコンポーネントはサポートされていません)。これにより、ユーザーが代わりにブラウザーや他のアプリに移動するオプションを使用せずに、アプリのみを起動するように指示できます。

助けてくれてありがとう(そしてコードスニペット)

4

2 に答える 2

0

私の推測では、アプリを開くまであと 1 歩です。ブラウザに URL を入力しないでください。別の場所に URL が必要です。SMSで言ってください。そこにはある種のテキストとリンク「http://market.android.com」があります。このリンクをクリックすると、ブラウザまたはアプリで開くオプションを含むダイアログが表示されます。

質問を間違って理解した場合は申し訳ありません。

于 2013-05-08T12:22:26.477 に答える
0

エミュレーターを起動するときに「market.android.com」と入力し、アプリケーションを起動したいのですが、起動しません

「入力」とは「アドレスバーに入力する」ことを意味すると仮定すると、そのシナリオで開始することは想定されていません。ブラウザは通常<intent-filter>、ハイパーリンクに対してのみこの種の構造を受け入れます。

答えてください、アプリケーションの正しい動作はエミュレータによって提供される可能性がありますか、それとも実際のデバイスを使用する必要がありますか?

ハイパーリンクを使用すると、エミュレーターで動作するはずです。

于 2013-05-08T12:08:57.627 に答える