Android - 更改应用内的联系信息

时间:2012-01-31 21:52:16

标签: android contacts

我想更改应用中的联系信息,这可能吗?

我想要做的是能够创建具有指定名称的联系人并添加 我的应用中指定的“此”联系人号码。但是,这应该做到 自动而非用户。

我创建了一个发送短信的Android应用,但是我想让它改变联系方式 信息是否发送到同一部手机......

换句话说;如果我发短信到我的手机,我希望该应用程序创建一个联系人 我自己的号码,并用指定的名称重命名这个号码。

我希望这是可以理解的......:P

2 个答案:

答案 0 :(得分:0)

我不知道这样做的确切方法,但我认为这些例子可以提供帮助:

Android ContactAdder

Android edit contact

同时编辑联系人是通过Intent进行的,我相信你需要创建一个类似的意图:

Intent i = new Intent(Intent.ACTION_EDIT);

并通过此意图更改信息。另见:

Android update contact name

希望它有所帮助!

答案 1 :(得分:0)

请试试这个:

public static void addContact(Context context, String firstname, String surname, String number) {
    try {
        ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();

        ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI).withValue(RawContacts.ACCOUNT_TYPE, null).withValue(RawContacts.ACCOUNT_NAME, null).build());
        ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI).withValueBackReference(Data.RAW_CONTACT_ID, 0).withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE).withValue(StructuredName.GIVEN_NAME, firstname).withValue(StructuredName.FAMILY_NAME, surname).build());
        ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI).withValueBackReference(Data.RAW_CONTACT_ID, 0).withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE).withValue(Phone.NUMBER, number).withValue(Phone.TYPE, Phone.TYPE_MOBILE).build());

        ContentProviderResult[] res = context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
        if (res == null) { //error }
    } catch (RemoteException e) {
        // error
    } catch (OperationApplicationException e) {
        // error
    }
}