1

私は地図を使ったプログラムを持っています。ユーザーが「mymaps.com」を含む URL リンクをクリックすると、私のプログラムが Web ブラウザーの代わりとして選択ダイアログに表示されます。ユーザーが Google マップへのリンクをクリックしたときにも同じことをしたい /web またはアプリケーションによって生成された /. さまざまな URL 形式を見つけました。

他のフォーマットもあると思います。すべてのフォーマットを傍受する方法を知っている人はいますか?

4

1 に答える 1

2

インテント フィルタを使用してください。詳細については、こちらをご覧ください: http://developer.android.com/guide/topics/intents/intents-filters.html

Android マニフェストで、開きたいアクティビティのタグに次を追加します。

<intent-filter>
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="http" android:host="maps.google.maps" android:pathPrefix="/maps" />
</intent-filter>

次に、アクティビティで次のメソッドを作成します:handleIntent

private void handleIntent(Intent newIntent) {
      Uri myuri = newIntent.getData();
      (then use myuri to get your parameters such as q, num, etc)
      (then show your map or whatever else you like with that data)

}

onCreate で、次のように handleIntent を呼び出す必要があります

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    (init stuff would go here)
    handleIntent(getIntent());
}

(オプション) そのように onNewIntent をオーバーライドする必要がある場合があります (AndroidManifest アクティビティの configchanges プロパティが微調整された場合に備えて)

@Override 
protected void onNewIntent(Intent newIntent) {
    setIntent(newIntent);
    handleIntent(newIntent);
}
于 2012-04-27T09:02:20.133 に答える