如何在Android中截取谷歌地图意图?

Pab*_* MJ 5 maps android filter android-intent

我试图截取谷歌地图意图如下:

Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("geo:37.423156,-122.084917"));

但我没有找到任何关于此的示例,链接或文档.所以,我想不幸的是,这是不可能的.

在Manifest文件中,我放了几个intent过滤器.特别是我认为下一个意图过滤器必须与提到的意图相匹配.

<intent-filter>
<action android:name="android.content.Intent.ACTION_VIEW" />
        <data android:scheme="geo"/>
    </intent-filter>
Run Code Online (Sandbox Code Playgroud)

此外,我尝试通过以下方式调查哪些活动与此特定意图相匹配:

List resolves = getPackageManager().queryIntentActivities(myIntent, 0 );
ResolveInfo firstRevolve=(ResolveInfo) resolves.get(0);
IntentFilter myIF=firstRevolve.filter;
Run Code Online (Sandbox Code Playgroud)

然而,只有MapsActivity与intent相匹配,而不是我的Activity,并且令人惊讶的是myIF为null,因此我无法获得google maps活动使用的intent过滤器.

另外我从Android Market安装了"Intent Intercept",但它没有捕获这个意图.

所以,我需要一些帮助/想法.有人知道发生了什么事吗?在我看来,谷歌限制了这种拦截,但未指定此限制.

任何帮助将不胜感激.最好的问候,巴勃罗.

小智 5

下面的代码示例在我的项目中正常工作.

<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="https" android:host="maps.google.com" />
    <data android:scheme="geo" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)


Com*_*are 1

所以,不幸的是,我认为这是不可能的。

我相当肯定是这样的。

特别是我认为下一个意图过滤器必须与提到的意图匹配。

您的操作字符串错误。如果您阅读文档,则 的字符串表示形式ACTION_VIEW为:

android.intent.action.VIEW
Run Code Online (Sandbox Code Playgroud)

这不是你的<intent-filter>.