2013-03-27 76 views
1

我用下面的代碼添加聯繫人:如何以編程方式添加聯繫人?

 Intent intent = new Intent(Intent.ACTION_INSERT, ContactsContract.Contacts.CONTENT_URI); 

     activity.startActivityForResult(intent, ATTACH_VCARD_REQUEST_CODE); 

但在我的谷歌Nexus默認的Android聯繫人管理器應用程序的結果不回我的活動

我有以下行爲: 1 。我打電話給聯繫經理 2.添加字段名稱,然後點擊「完成」

之後,打開默認Android Contact Manager的其他Activity,只有當我按回或向上按鈕時纔可以離開此活動。之後,我無法使用back stack(後退按鈕)返回到我的應用程序活動。我可以使用Recent Tasks Manager打開我的應用程序,但是然後我得到resulCode == 0和intent == null。

回答

0

我查看了standart Contacts應用程序的源代碼並找到了負責創建新聯繫人的Activity。有標誌INTENT_KEY_FINISH_ACTIVITY_ON_SAVE_COMPLETED =「finishActivityOnSaveCompleted」;如果這個標誌是真的,那麼調用setResult(RESULT_OK);

所以這個問題的解決方案是

Intent intent = new Intent(ContactsContract.Intents.Insert.ACTION); 
    intent.setType(ContactsContract.Contacts.CONTENT_TYPE); 
    intent.putExtra("finishActivityOnSaveCompleted", true); 
    activity.startActivityForResult(intent, ATTACH_VCARD_REQUEST_CODE); 
+0

這並不在4.4.2 Android設備的工作。有人知道解決方案嗎?請分享... – Sandra 2014-09-16 11:48:27

相關問題