我正在嘗試編寫一個意圖過濾器來從聯繫人列表中選擇一個聯繫人(純粹爲了教育目的......我正在學習意圖)。在隱式意圖調用startActivity之後,android應該找到我的自定義活動以及作爲候選活動的默認活動,並讓我選擇我想使用哪一個(intent resolution)。Android意圖過濾器問題
但是,使用我目前的設置,它會打開android的默認聯繫人選擇器,而不會給我選擇。這是我的意圖過濾器。
<activity android:name=".ContactPicker" android:label="PICKER" >
<intent-filter>
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="content" android:host="com.android.contacts" android:path="contacts" />
</intent-filter>
</activity>
,這裏是我如何打電話的主要活動隱含的意圖:
Intent intent = new Intent(Intent.ACTION_PICK, Uri.parse("content://com.android.contacts/contacts"));
startActivityForResult(intent, PICK_CONTACT);
您需要使用ACTION_CHOOSER這裏記錄的http://開發商。 android.com/reference/android/content/Intent.html#ACTION_CHOOSER - 抱歉,我不知道如何自己使用它,但嘗試谷歌搜索的例子。 – Squonk
@MisterSquonk:如果用戶爲這個「Intent」選擇了一個默認處理程序,那將是必要的。可以想象,內置的聯繫人應用程序已預先確定爲默認設置,但我會感到驚訝,因爲他們不會爲我嘗試覆蓋的任何其他「內容」(例如,替代主屏幕)。 – CommonsWare