添加联系人打开地址簿应用程序

时间:2015-07-14 13:27:25

标签: android contacts addressbook

如果我想在不保存的情况下添加联系人,我该怎么办?例如:我想使用从我的应用程序收到的值填充地址簿的字段。就像你在Whatsapp中添加一个联系人一样(它填写了电话号码的字段,但它没有保存联系人)。提前谢谢,抱歉我的英语不好。

更新

我已经尝试了这个,但它直接保存了它!

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
    ops.add(ContentProviderOperation.newInsert(
            ContactsContract.RawContacts.CONTENT_URI)
            .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
            .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
            .build());

    // add contact name
    ops.add(ContentProviderOperation.newInsert(
            ContactsContract.Data.CONTENT_URI)              
            .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
            .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
            .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,contatto).build());
try 
    {
        getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
        Toast.makeText(getApplicationContext(),getResources().getString(R.string.Contattoaggiuntocorr),Toast.LENGTH_LONG).show();
        finish();
    } 
    catch (Exception e) 
    {               
        e.printStackTrace();
        Toast.makeText(getApplicationContext(), "Exception: " + e.getMessage(), Toast.LENGTH_LONG).show();
    }

解决!

我找到了解决方案!

public void insertContact(String name, String email) {
Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType(Contacts.CONTENT_TYPE);
intent.putExtra(Intents.Insert.NAME, name);
intent.putExtra(Intents.Insert.EMAIL, email);
if (intent.resolveActivity(getPackageManager()) != null) {
    startActivity(intent);
}

}

0 个答案:

没有答案