简体   繁体   中英

Adding a new contact as Google contact and not on local device

I have an app that can save new contacts on the device, but I want to be able to save the contact on Google contacts, if the user chooses so, or if these are the default settings. Does someone know how to do it? (I can't find anything on the web).

This is the code for saving on the device:

 ArrayList<ContentProviderOperation> data = new ArrayList<ContentProviderOperation>();

                        data.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
                                .withValue(ContactsContract.RawContacts.CONTACT_ID, null)
                                .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
                                .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
                                .build());

                        //---------Name
                        data.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, name)
                                .build());

                        //---------Phone
                        data.add(ContentProviderOperation.
                                newInsert(ContactsContract.Data.CONTENT_URI)
                                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
                                .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
                                .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, phone)
                                .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
                                .build());

                        try {
                           getContentResolver().applyBatch(ContactsContract.AUTHORITY, data);
                        } catch (Exception e) {
                            e.printStackTrace();
                            Toast.makeText(MainActivity.this, MainActivity.this.getString(R.string.Exception) + " " + e.getMessage(), Toast.LENGTH_LONG).show();
                        }

Contacts API

This document is intended for programmers who want to write client applications that can interact with Google's contact lists.

https://developers.google.com/google-apps/contacts/v3/?hl=en

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM