2011-02-03 40 views
2

人们在查看联系人时,可以按地址在地图应用程序(例如Google地图或VZW导航器)中查看该地址。我想定义一个意图过滤器,以便我的应用程序将显示在可以处理上述意图的应用程序列表中。有任何想法吗?Intent用于处理地址的过滤器在联系人中按下?

在此先感谢。

从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> 

回答

2

的解决方案,由谷歌开发者关系提供的是:

<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> 
+0

这个*在我的Android 4.2.2手机上(Galaxy S4) – 2013-07-30 05:13:24

0

VIEW应该大写。你的不是。

+0

谢谢你,我的错字上方是一个明显的错误......仍然没有奏效。 – shammer64 2011-02-10 14:10:11

3

在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> 

接收到的意图应作相应(diffrently)处理。 请注意,在ICS和这个意图过滤器,你不需要特殊的权限来阅读联系地址。

+0

* *不工作*在我的Android 4.2.2(Galaxy S4)手机上工作* – 2013-07-30 05:13:54

1

为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>