2011-12-10 9 views
1

私はこの質問が何度も尋ねられていることを知っていますが、私はそれを動作させることができませんでした。ここに私のマニフェストファイルがある(私は3つの活性を有し、私は私が関連付けられたときに表示されるようにしたいだけ1を示すよ):Android:インテントフィルタを使用してアプリケーションを起動できない

<activity 
     android:name=".MyActivity" 
     android:label="@string/app_name" 
     android:theme="@style/HoloDarkTheme" > 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <action android:name="android.intent.action.ACTION_SEND" /> 
      <action android:name="android.intent.action.EXTRA_TEXT" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.action.BROWSABLE" /> 
      <category android:name="android.intent.action.DEFAULT" /> 
      <data android:scheme="http" /> 
      <data android:host="example.com" /> 
     </intent-filter> 
    </activity> 

私は、ブラウザを起動し、「example.com」に行くとき、私のアプリは起動しません。上記のXMLに何か問題がありますか?

関連性があるかどうかわかりませんが、このアクティビティではMediaPlayerを使用して動画を再生しています。また、SDKバージョン11を使用しています。

答えて

1

私はそれを理解しました。それは単にタイプミスの場合です。これに代えて、

 <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.action.BROWSABLE" /> 
     <category android:name="android.intent.action.DEFAULT" /> 

私は最後の2行に「android.intent.category」と「android.intent.action」を置き換えるために必要な:

 <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
-1

マニフェストにインターネット権限があることを確認してください。

+0

はい、そこにあります。 – jules

+0

簡単なアプリの起動には必要ありません。私はこの問題を解決するために問題を抱えていたので、これを見て、このスレッドを見つけました。私は "インターネット許可"(実際にアンドロイド。permission.INTERNET)、それでも同じ問題がありました。私は結局それを働かせました(私の答えはこのスレッドの他の場所にあります)。そして、この許可を取りにきました。 –

-1

httpスキームをオーバーライドしてアプリを指すようにすることはできません。

+0

私は "http"を "myscheme"のカスタマイズされたスキームに置き換えようとしましたが、それはまだ動作しません。 – jules

+1

httpスキームを使ってアプリケーションを起動することができます。すべてのブラウザを起動するだけです。 –

0

私はここで、この答えを追加していますなぜなら、このスレッドは、httpから正常に動作しないアプリケーションを起動するためのインテントフィルタをグーグルで検索したときのトップヒットの1つだからです。私は私の根本的な原因がタイプミスであると考えられるかもしれないと思うが、私はそれを "Androidドキュメントの不具合"と呼ぶつもりだ。 「://は」、「:」と「/」私のために追加されます

<scheme>://<host>:<port>/<path> 

この内訳ことを示しています

としてURIを分解しthis pageの一番下に向けてライン方法があります私は、以下のデータを使用し、私のintent-filter:「my.school.edu/thingy」、と私のSMSクライアント(ハングアウト)によって認識された:私は、次のテキストを自分自身にSMSを送信し

<data android:scheme="http" /> 
<data android:host="my.school.edu" /> 
<data android:path="thingy" /> 

ウェブアドレスをクリックできるようにしました。しかし、それをクリックするだけで私にブラウザの選択肢が与えられた、私のアプリはノーショーだった。

私はホストとパスを削除し、私のアプリはリンク(または少なくとも私が試したすべてのもの)に対して起動しました。私はホストを戻して、それはまだ働いた。道を戻して、私たちは元気ではない。気まぐれに私はパスにスラッシュを付けることにしました。

<data android:path="/thingy" /> 

... etvoilà!ブラウザの中に私のアプリがあります!だから私の見解では、スラッシュが自動的に挿入されることを示唆しているAndroidの文書が間違っています。 :)明らかにそうではありません。

詳細情報:私はHTTPスキームを使用しています。その理由は、SMSと電子メールメッセージでクリック可能になっているからです。

また、一意のホスト(とパス)を指定して、リストからアプリケーションを選択するときにユーザーが「常に」を選択すると、リンク上の将来のタップはその選択ダイアログをバイパスして、それはいいですね。

関連する問題