1

我有地图程序。当用户单击包含“mymaps.com”的 url 链接时 - 我的程序显示在选择器对话框中,以替代 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 回答