Android Intent Filters for VIEW/EDIT/INSERT Contact

1

I've been trying to find one or all of the right filters. Does anyone have them? Down at the bottom you can see the logging output of the intents. Perhaps they aren't public?

Have tried the following in my code to no avail...

  <receiver android:name=".ContactsBroadcastReceiver" android:label="@string/broadcast_receiver_name" android:enabled="true">
       <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.dir/person" android:host="contacts" />
            <data android:mimeType="vnd.android.cursor.dir/contact" android:host="com.android.contacts" />
        </intent-filter>
        <intent-filter>
            <action android:name="com.android.contacts.action.LIST_DEFAULT" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.TAB" />
        </intent-filter>

        <intent-filter>
            <action android:name="com.android.contacts.action.LIST_CONTACTS" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.TAB" />
        </intent-filter>

        <intent-filter>
            <action android:name="com.android.contacts.action.LIST_ALL_CONTACTS" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.TAB" />
        </intent-filter>

        <intent-filter>
            <action android:name="com.android.contacts.action.LIST_CONTACTS_WITH_PHONES" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.TAB" />
        </intent-filter>

        <intent-filter android:label="@string/starredList">
            <action android:name="com.android.contacts.action.LIST_STARRED" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.TAB" />
        </intent-filter>

        <intent-filter android:label="@string/frequentList">
            <action android:name="com.android.contacts.action.LIST_FREQUENT" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.TAB" />
        </intent-filter>

        <intent-filter android:label="@string/strequentList">
            <action android:name="com.android.contacts.action.LIST_STREQUENT" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.TAB" />
        </intent-filter>

        <intent-filter>
            <action android:name="android.intent.action.INSERT_OR_EDIT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/person" />
            <data android:mimeType="vnd.android.cursor.item/contact" />
            <data android:mimeType="vnd.android.cursor.item/raw_contact" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.EDIT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="content" android:host="com.android.contacts" android:pathPrefix="raw_contacts" 
             android:mimeType="vnd.android.cursor.dir/contact"/>
        </intent-filter>
        <intent-filter>
            <action android:name="com.android.contacts.action.SHOW_OR_CREATE_CONTACT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="content" android:host="com.android.contacts" android:path="contacts" 
             android:mimeType="vnd.android.cursor.dir/contact"/>
        </intent-filter>
        <intent-filter>
            <action android:name="com.android.contacts.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="content" android:host="com.android.contacts" android:pathPrefix="contacts" 
             android:mimeType="vnd.android.cursor.dir/contact"/>
        </intent-filter>
        <intent-filter>
            <action android:name="com.android.contacts.action.INSERT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="content" android:host="com.android.contacts" android:path="contacts" 
             android:mimeType="vnd.android.cursor.dir/contact"/>
            <!--
            I/ActivityManager( 1212): Starting activity: Intent { act=android.intent.action.VIEW dat=content://com.android.contacts/contacts flg=0x10000000 cmp=com.android.contacts/.DialtactsContactsEntryActivity bnds=[324,598][480,718] }
            I/ActivityManager( 1212): Starting activity: Intent { act=android.intent.action.EDIT dat=content://com.android.contacts/raw_contacts/26 cmp=android/com.android.internal.app.ResolverActivity }
            I/ActivityManager( 1212): Starting activity: Intent { act=android.intent.action.INSERT dat=content://com.android.contacts/contacts cmp=com.android.contacts/.ui.EditContactActivity }
             -->
        </intent-filter>
  </receiver>   
android
filter
view
android-intent
contacts
asked on Stack Overflow Aug 5, 2010 by AndroidHacker

1 Answer

0

This worked for me:

        <intent-filter android:label="Edit Contact">
            <action android:name="android.intent.action.EDIT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/person"
                android:host="contacts" />
            <data android:mimeType="vnd.android.cursor.item/contact"
                android:host="com.android.contacts" />
            <data android:mimeType="vnd.android.cursor.item/raw_contact"
                android:host="com.android.contacts" />
        </intent-filter>
        <intent-filter android:label="Create Contact">
            <action android:name="android.intent.action.INSERT" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.dir/person" />
            <data android:mimeType="vnd.android.cursor.dir/contact" />
            <data android:mimeType="vnd.android.cursor.dir/raw_contact" />
        </intent-filter>
        <intent-filter android:label="View Contact">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="vnd.android.cursor.item/person"
                android:host="contacts" />
            <data android:mimeType="vnd.android.cursor.item/contact"
                android:host="com.android.contacts" />
            <data android:mimeType="vnd.android.cursor.item/raw_contact"
                android:host="com.android.contacts" />
        </intent-filter>
answered on Stack Overflow Mar 28, 2011 by ninjasense • edited Mar 28, 2011 by ninjasense

User contributions licensed under CC BY-SA 3.0