我一直试图找到一个或所有正确的过滤器。有人有吗?在底部,您可以看到意图的日志输出。也许他们不公开?
在我的代码中尝试了以下内容但无济于事......
<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>
答案 0 :(得分:0)
这对我有用:
<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>