2011-10-26 16 views
2

私はウェブサイトに付随するAndroidアプリを作成しており、アプリを特定のURLに代行させたいと考えていました。私はGoogleとSOの複数の例を見つけましたが、どちらもうまくいきませんでした。URLをインテントに照合することができません

startActivity(i); 

これを受けるべき活動のためのインテントフィルタがある(私は上記の意図である)

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://xgn.nl/article/" + String.valueOf(id))); 

し、別のアクティビティからそれを起動します。私は私の意図を作成します

<activity android:name=".ArticleActivity" android:theme="@style/XGN.Red"> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <data android:scheme="http" android:host="xgn.nl" android:pathPrefix="/article/" android:mimeType="text/*" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
     </intent-filter> 
    </activity> 

また、フィルタにmimeTypeを付けずに試してみました。インテントリゾルバはフィルタを表示しますが、データがインテント内のデータと一致せず、代わりにブラウザを起動することを訴えます。

私は間違っていますか?

+0

エラーを投稿してください。私はこれを参照しています: "インテントリゾルバはフィルタを見ますが、データがインテントのデータと一致しないと不平を言う"。 –

+0

申し訳ありません、いくつかのデバッグのために戻ってきましたが、実際に見つけました:) IntentResolverのデバッグ出力をフラグで有効にして、データが一致していないと思われるlogcatを表示しました –

+0

android:pathPrefix = "article "これが問題なのかどうかは分かりません... –

答えて

4

私は実際に私はそれを掲示した後、問題はあなたがこれを動作させるための完全修飾クラス名を指定する必要がありますということでした5Sそれを解決:)

<activity android:name="nl.xgn.ArticleActivity" android:theme="@style/XGN.Red"> 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 
     <data android:scheme="http" android:host="xgn.nl" android:pathPrefix="/article/" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
     <category android:name="android.intent.category.BROWSABLE" /> 
    </intent-filter> 
</activity> 

EDIT:より正確には、エラーIをlogcatで見ていた間違っていた。データ型は一致しましたが、遅れて定義されたアクティビティよりも目立つブラウザクラスを選択しました。フルクラス名を指定してmimeTypeを削除すると、この作業ができました。

関連する問題