用于处理联系人中的地址新闻的意图过滤器?

发布于 2024-10-15 18:48:41 字数 1052 浏览 2 评论 0原文

各位,在查看联系人时,您可以按地址以在地图应用程序(例如 Google 地图或 VZW Navigator)中查看该地址。我想定义一个意图过滤器,以便我的应用程序将显示在可以处理所述意图的应用程序列表中。有什么想法吗?

提前致谢。

从 logcat 中,我从 ActivityManager 中看到以下内容:

Starting activity: 
Intent { act=android.intent.action.VIEW dat=content://com.android.contacts/data/6792 cmp=android/com.android.internal.app.ResolverActivity }

我尝试了意图过滤器的几种组合,例如:

<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=”geo” />
</intent-filter>

<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=”content” android:host=”com.android.contacts” android:pathPattern=”/data/*” />
</intent-filter>

Folks, when viewing a contact, you can press on the address to view that address in a map application (such as Google Maps or VZW Navigator). I would like define an intent-filter such that my app will show up in the list of apps that can handle said intent. Any ideas?

Thanks in advance.

From logcat, I see the following from ActivityManager:

Starting activity: 
Intent { act=android.intent.action.VIEW dat=content://com.android.contacts/data/6792 cmp=android/com.android.internal.app.ResolverActivity }

I've tried a several combinations of intent-filters, e.g.:

<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=”geo” />
</intent-filter>

<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=”content” android:host=”com.android.contacts” android:pathPattern=”/data/*” />
</intent-filter>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

一场春暖 2024-10-22 18:48:41

在 ICS 中,您应该使用这个:

        <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="geo" />
        </intent-filter>

收到的意图应该进行相应的处理(不同地)。
请注意,在 ICS 上并使用此意图过滤器,您不需要特殊权限即可读取联系地址。

in ICS you should use this:

        <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="geo" />
        </intent-filter>

The received intent should be handled accordingly (diffrently).
please note that on ICS and with this intent-filter you don't need a special permission to read contact address.

人间☆小暴躁 2024-10-22 18:48:41

Google 开发者关系部提供的解决方案是:

<intent-filter android:label="MyApp">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="vnd.android.cursor.item/postal-address_v2" />
</intent-filter>

The solution, provided by Google Developer Relations is:

<intent-filter android:label="MyApp">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="vnd.android.cursor.item/postal-address_v2" />
</intent-filter>
第几種人 2024-10-22 18:48:41

对于我使用的早期版本的 Android

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/*" android:host="com.android.contacts" android:pathPrefix="/data" android:scheme="content"/>
        </intent-filter>

for early versions of Android I used

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/*" android:host="com.android.contacts" android:pathPrefix="/data" android:scheme="content"/>
        </intent-filter>
走走停停 2024-10-22 18:48:41

VIEW 应该大写。你的不是。

VIEW is supposed to be capitalized. Yours is not.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文