Java 类android.provider.ContactsContract.RawContacts 实例源码

项目:PeSanKita-android    文件:ContactsDatabase.java   
private void addContactVoiceSupport(List<ContentProviderOperation> operations,
                                    @NonNull String e164number, long rawContactId)
{
  operations.add(ContentProviderOperation.newUpdate(RawContacts.CONTENT_URI)
                                         .withSelection(RawContacts._ID + " = ?", new String[] {String.valueOf(rawContactId)})
                                         .withValue(RawContacts.SYNC4, "true")
                                         .build());

  operations.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI.buildUpon().appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build())
                                         .withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId)
                                         .withValue(ContactsContract.Data.MIMETYPE, CALL_MIMETYPE)
                                         .withValue(ContactsContract.Data.DATA1, e164number)
                                         .withValue(ContactsContract.Data.DATA2, context.getString(R.string.app_name))
                                         .withValue(ContactsContract.Data.DATA3, context.getString(R.string.ContactsDatabase_signal_call_s, e164number))
                                         .withYieldAllowed(true)
                                         .build());
}
项目:Cable-Android    文件:ContactsDatabase.java   
private void addContactVoiceSupport(List<ContentProviderOperation> operations,
                                    @NonNull String e164number, long rawContactId)
{
  operations.add(ContentProviderOperation.newUpdate(RawContacts.CONTENT_URI)
                                         .withSelection(RawContacts._ID + " = ?", new String[] {String.valueOf(rawContactId)})
                                         .withValue(RawContacts.SYNC4, "true")
                                         .build());

  operations.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI.buildUpon().appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build())
                                         .withValue(ContactsContract.Data.RAW_CONTACT_ID, rawContactId)
                                         .withValue(ContactsContract.Data.MIMETYPE, CALL_MIMETYPE)
                                         .withValue(ContactsContract.Data.DATA1, e164number)
                                         .withValue(ContactsContract.Data.DATA2, context.getString(R.string.app_name))
                                         .withValue(ContactsContract.Data.DATA3, context.getString(R.string.ContactsDatabase_signal_call_s, e164number))
                                         .withYieldAllowed(true)
                                         .build());
}
项目:Chit-Chat    文件:FragmentChatLists.java   
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case id.menu_edit_profile:
            Intent intent = new Intent(getActivity(), ProfileEditActivity.class);
            startActivity(intent);
            break;
        case id.menu_add_contact:
            Intent add_contact_intent = new Intent(Insert.ACTION);
            add_contact_intent.setType(RawContacts.CONTENT_TYPE);
            startActivityForResult(add_contact_intent, TAG_ADD_CONTACT);
            break;
        case id.menu_about:
            Intent about_intent = new Intent(getActivity(), AboutActivity.class);
            startActivity(about_intent);
            break;
    }
    return super.onOptionsItemSelected(item);
}
项目:phoneContact    文件:Utils.java   
public static void addContact(String name, String number)
{
    ContentValues values = new ContentValues(); 
       //������RawContacts.CONTENT_URIִ��һ����ֵ���룬Ŀ���ǻ�ȡϵͳ���ص�rawContactId  
       Uri rawContactUri = m_context.getContentResolver().insert(RawContacts.CONTENT_URI, values); 
       long rawContactId = ContentUris.parseId(rawContactUri); 
       //��data������������� 
       values.clear(); 
       values.put(Data.RAW_CONTACT_ID, rawContactId);  
       values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);//�������� 
       values.put(StructuredName.GIVEN_NAME, name); 
       m_context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

       //��data�����绰���� 
       values.clear(); 
       values.put(Data.RAW_CONTACT_ID, rawContactId); 
       values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE); 
       values.put(Phone.NUMBER, number); 
       values.put(Phone.TYPE, Phone.TYPE_MOBILE); 
       m_context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values); 

}
项目:mc_backup    文件:ContactService.java   
private void clearAllContacts(final JSONObject contactOptions, final String requestID) {
    ArrayList<ContentProviderOperation> deleteOptions = new ArrayList<ContentProviderOperation>();

    // Delete all contacts from the selected account
    ContentProviderOperation.Builder deleteOptionsBuilder = ContentProviderOperation.newDelete(RawContacts.CONTENT_URI);
    if (mAccountName != null) {
        deleteOptionsBuilder.withSelection(RawContacts.ACCOUNT_NAME + "=?", new String[] {mAccountName})
                            .withSelection(RawContacts.ACCOUNT_TYPE + "=?", new String[] {mAccountType});
    }

    deleteOptions.add(deleteOptionsBuilder.build());

    // Clear the contacts
    String returnStatus = "KO";
    if (applyBatch(deleteOptions) != null) {
        returnStatus = "OK";
    }

    Log.i(LOGTAG, "Sending return status: " + returnStatus);

    sendCallbackToJavascript("Android:Contacts:Clear:Return:" + returnStatus, requestID,
                             new String[] {"contactID"}, new Object[] {"undefined"});

}
项目:mc_backup    文件:ContactService.java   
private Cursor getAllRawContactIdsCursor() {
    // When a contact is deleted, it actually just sets the deleted field to 1 until the
    // sync adapter actually deletes the contact later so ignore any contacts with the deleted
    // flag set
    String selection = RawContacts.DELETED + "=0";
    String[] selectionArgs = null;

    // Only get contacts from the selected account
    if (mAccountName != null) {
        selection += " AND " + RawContacts.ACCOUNT_NAME + "=? AND " + RawContacts.ACCOUNT_TYPE + "=?";
        selectionArgs = new String[] {mAccountName, mAccountType};
    }

    // Get the ID's of all contacts and use the number of contact ID's as
    // the total number of contacts
    return mContentResolver.query(RawContacts.CONTENT_URI, new String[] {RawContacts._ID},
                                  selection, selectionArgs, null);
}
项目:mobilecloud-15    文件:InsertContactsCommand.java   
/**
 * Synchronously insert a contact with the designated @name into
 * the ContactsContentProvider.  This code is explained at
 * http://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html.
 */
private void addContact(String name,
                        List<ContentProviderOperation> cpops) {
    final int position = cpops.size();

    // First part of operation.
    cpops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
              .withValue(RawContacts.ACCOUNT_TYPE,
                         mOps.getAccountType())
              .withValue(RawContacts.ACCOUNT_NAME,
                         mOps.getAccountName())
              .withValue(Contacts.STARRED,
                         1)
              .build());

    // Second part of operation.
    cpops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
              .withValueBackReference(Data.RAW_CONTACT_ID,
                                      position)
              .withValue(Data.MIMETYPE,
                         StructuredName.CONTENT_ITEM_TYPE)
              .withValue(StructuredName.DISPLAY_NAME,
                         name)
              .build());
}
项目:mobilecloud-15    文件:InsertContactsCommand.java   
/**
 * Each contact requires two (asynchronous) insertions into
 * the Contacts Provider.  The first insert puts the
 * RawContact into the Contacts Provider and the second insert
 * puts the data associated with the RawContact into the
 * Contacts Provider.
 */
public void executeImpl() {
    if (getArgs().getIterator().hasNext()) {
        // If there are any contacts left to insert, make a
        // ContentValues object containing the RawContact
        // portion of the contact and initiate an asynchronous
        // insert on the Contacts ContentProvider.
        final ContentValues values = makeRawContact(1);
        getArgs().getAdapter()
                 .startInsert(this,
                              INSERT_RAW_CONTACT,
                              RawContacts.CONTENT_URI,
                              values);
    } else
        // Otherwise, print a toast with summary info.
        Utils.showToast(getArgs().getOps().getActivityContext(),
                        getArgs().getCounter().getValue()
                        +" contact(s) inserted");
}
项目:mobilecloud-15    文件:InsertContactsCommand.java   
/**
 * Synchronously insert a contact with the designated @name into
 * the ContactsContentProvider.  This code is explained at
 * http://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html.
 */
private void addContact(String name,
                        List<ContentProviderOperation> cpops) {
    final int position = cpops.size();

    // First part of operation.
    cpops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
              .withValue(RawContacts.ACCOUNT_TYPE,
                         mOps.getAccountType())
              .withValue(RawContacts.ACCOUNT_NAME,
                         mOps.getAccountName())
              .withValue(Contacts.STARRED,
                         1)
              .build());

    // Second part of operation.
    cpops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
              .withValueBackReference(Data.RAW_CONTACT_ID,
                                      position)
              .withValue(Data.MIMETYPE,
                         StructuredName.CONTENT_ITEM_TYPE)
              .withValue(StructuredName.DISPLAY_NAME,
                         name)
              .build());
}
项目:ntsync-android    文件:ContactOperations.java   
/**
 * Update the custom row-modification-date
 * 
 * @param serverId
 *            the serverId for this contact
 * @param uri
 *            Uri for the existing raw contact to be updated
 * @return instance of ContactOperations
 */
public ContactOperations updateClientMod(Long version, Long clientMod,
        Uri uri) {
    mValues.clear();
    if (clientMod != null) {
        mValues.put(RawContacts.SYNC2, clientMod);
    }
    mValues.put(RawContacts.SYNC3, version);
    if (Log.isLoggable(TAG, Log.INFO)) {
        Log.i(TAG, "ClientMod updated: "
                + (clientMod != null ? new Date(clientMod).toString()
                        : "null") + ",version:" + version
                + " for contactId:" + ContentUris.parseId(uri));
    }
    addUpdateOp(uri);
    return this;
}
项目:CucumberSync    文件:LocalAddressBook.java   
protected void populatePhoto(Contact c) throws RemoteException {
    @Cleanup Cursor cursor = providerClient.query(dataURI(),
            new String[] { Photo.PHOTO_FILE_ID, Photo.PHOTO },
            Photo.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=?",
            new String[] { String.valueOf(c.getLocalID()), Photo.CONTENT_ITEM_TYPE }, null);
    if (cursor != null && cursor.moveToNext()) {
        if (!cursor.isNull(0)) {
            Uri photoUri = Uri.withAppendedPath(
                     ContentUris.withAppendedId(RawContacts.CONTENT_URI, c.getLocalID()),
                     RawContacts.DisplayPhoto.CONTENT_DIRECTORY);
            try {
                @Cleanup AssetFileDescriptor fd = providerClient.openAssetFile(photoUri, "r");
                @Cleanup InputStream is = fd.createInputStream();
                c.setPhoto(IOUtils.toByteArray(is));
            } catch(IOException ex) {
                Log.w(TAG, "Couldn't read high-res contact photo", ex);
            }
        } else
            c.setPhoto(cursor.getBlob(1));
    }
}
项目:Simplicissimus    文件:EasyDb.java   
public EasyDb(long contactId) {
    cursor = context.getContentResolver().query(
        RawContacts.CONTENT_URI,
        new String[]{RawContacts._ID,
            RawContacts.CONTACT_ID, RawContacts.AGGREGATION_MODE,
            RawContacts.DELETED, RawContacts.TIMES_CONTACTED,
            RawContacts.LAST_TIME_CONTACTED, RawContacts.STARRED,
            RawContacts.CUSTOM_RINGTONE, RawContacts.SEND_TO_VOICEMAIL,
            RawContacts.ACCOUNT_NAME, RawContacts.ACCOUNT_TYPE,
            RawContacts.DATA_SET, RawContacts.SOURCE_ID,
            RawContacts.VERSION, RawContacts.DIRTY, RawContacts.SYNC1,
            RawContacts.SYNC2, RawContacts.SYNC3, RawContacts.SYNC4, },
        RawContacts.CONTACT_ID + "=?",
        new String[]{String.valueOf(contactId)},
        null);
    cursor.moveToFirst();
    columnNames = cursor.getColumnNames();
}
项目:Simplicissimus    文件:Parcels.java   
public Parcels(Context context, long contactId) {
    this.context = context;
    cursor = context.getContentResolver().query(
        RawContacts.CONTENT_URI,
        new String[]{RawContacts._ID,
            RawContacts.CONTACT_ID, RawContacts.AGGREGATION_MODE,
            RawContacts.DELETED, RawContacts.TIMES_CONTACTED,
            RawContacts.LAST_TIME_CONTACTED, RawContacts.STARRED,
            RawContacts.CUSTOM_RINGTONE, RawContacts.SEND_TO_VOICEMAIL,
            RawContacts.ACCOUNT_NAME, RawContacts.ACCOUNT_TYPE,
            RawContacts.DATA_SET, RawContacts.SOURCE_ID,
            RawContacts.VERSION, RawContacts.DIRTY, RawContacts.SYNC1,
            RawContacts.SYNC2, RawContacts.SYNC3, RawContacts.SYNC4, },
        RawContacts.CONTACT_ID + "=?",
        new String[]{String.valueOf(contactId)},
        null);
    //cursor.moveToFirst();
    columnNames = cursor.getColumnNames();
}
项目:haxsync    文件:ContactDetailFragment.java   
private void getContactDetails(long id){
Cursor cursor = getActivity().getContentResolver().query(RawContacts.CONTENT_URI, new String[] {RawContacts._ID, RawContacts.DISPLAY_NAME_PRIMARY, RawContacts.CONTACT_ID, RawContacts.SYNC1}, RawContacts._ID + "=" +id, null, null);
if (cursor.getColumnCount() >= 1){
    cursor.moveToFirst();
    name = cursor.getString(cursor.getColumnIndex(RawContacts.DISPLAY_NAME_PRIMARY));
    uid = cursor.getString(cursor.getColumnIndex(RawContacts.SYNC1));
    joined = ContactUtil.getMergedContacts(getActivity(), id);
    contactID = cursor.getLong(cursor.getColumnIndex(RawContacts.CONTACT_ID));

}
cursor.close();
imageURI = Uri.withAppendedPath(
ContentUris.withAppendedId(RawContacts.CONTENT_URI, id),
      RawContacts.DisplayPhoto.CONTENT_DIRECTORY);
Log.i("imageuri", imageURI.toString());
  }
项目:haxsync    文件:ContactListFragment.java   
@Override
  public void onActivityCreated(Bundle savedInstanceState) {
      super.onActivityCreated(savedInstanceState);

      setEmptyText(getActivity().getString(R.string.no_contacts));
      setHasOptionsMenu(true);


String[] columns = new String[] {RawContacts.DISPLAY_NAME_PRIMARY};
int[] to = new int[] { android.R.id.text1 };
mAdapter = new ContactsCursorAdapter(
        getActivity(),
        android.R.layout.simple_list_item_activated_1, 
        null,
        columns,
        to,
        0);
setListAdapter(mAdapter);
showSyncIndicator();
   mContentProviderHandle = ContentResolver.addStatusChangeListener(
             ContentResolver.SYNC_OBSERVER_TYPE_ACTIVE, this);

  }
项目:haxsync    文件:ContactUtil.java   
public static Contact getMergedContact(Context c, long contactID, Account account){

Uri ContactUri = RawContacts.CONTENT_URI.buildUpon()
        .appendQueryParameter(RawContacts.ACCOUNT_NAME, account.name)
        .appendQueryParameter(RawContacts.ACCOUNT_TYPE, account.type)
        .build();

Cursor cursor = c.getContentResolver().query(ContactUri, new String[] { BaseColumns._ID, RawContacts.DISPLAY_NAME_PRIMARY}, RawContacts.CONTACT_ID +" = '" + contactID + "'", null, null);
if (cursor.getCount() > 0){
    cursor.moveToFirst();
    Contact contact = new Contact();
    contact.ID = cursor.getLong(cursor.getColumnIndex(BaseColumns._ID));
    contact.name = cursor.getString(cursor.getColumnIndex(RawContacts.DISPLAY_NAME_PRIMARY));
    cursor.close();
    return contact;
}
cursor.close();
return null;

  }
项目:haxsync    文件:ContactUtil.java   
public static Set<Long> getRawContacts(ContentResolver c, long rawContactID, String accountType){
    HashSet<Long> ids = new HashSet<Long>();
    Cursor cursor = c.query(RawContacts.CONTENT_URI, new String[] { RawContacts.CONTACT_ID}, RawContacts._ID +" = '" + rawContactID + "'", null, null); 
    if (cursor.getCount() > 0){
        cursor.moveToFirst();
        long contactID = cursor.getLong(cursor.getColumnIndex(RawContacts.CONTACT_ID));
        //  Log.i("QUERY", RawContacts.CONTACT_ID +" = '" + contactID + "'" + " AND " + BaseColumns._ID + " != " +rawContactID + " AND " + RawContacts.ACCOUNT_TYPE + " = '" + accountType+"'");
            Cursor c2 = c.query(RawContacts.CONTENT_URI, new String[] { BaseColumns._ID}, RawContacts.CONTACT_ID +" = '" + contactID + "'" + " AND " + BaseColumns._ID + " != " +rawContactID + " AND " + RawContacts.ACCOUNT_TYPE + " = '" + accountType+"'", null, null);
        //  Log.i("CURSOR SIZE", String.valueOf(c2.getCount()));
            while (c2.moveToNext()){
                ids.add(c2.getLong(c2.getColumnIndex(BaseColumns._ID)));
            }
            c2.close();
    }
    cursor.close();
    return ids;
}
项目:haxsync    文件:ContactUtil.java   
public static void addEmail(Context c, long rawContactId, String email){
    DeviceUtil.log(c, "adding email", email);
    String where = ContactsContract.Data.RAW_CONTACT_ID + " = '" + rawContactId 
            + "' AND " + ContactsContract.Data.MIMETYPE + " = '" + ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE+ "'";
    Cursor cursor = c.getContentResolver().query(ContactsContract.Data.CONTENT_URI, new String[] { RawContacts.CONTACT_ID}, where, null, null);
    if (cursor.getCount() == 0){
        ContentValues contentValues = new ContentValues();
        //op.put(ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID, );
        contentValues.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
        contentValues.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
        contentValues.put(ContactsContract.CommonDataKinds.Email.ADDRESS, email);
        c.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, contentValues);
    }
    cursor.close();

}
项目:ContactMerger    文件:ContactDataMapper.java   
/**
 * <p>Delete a set of contacts based on their id.</p>
 * <p><i>Note:</i> the method used for bulk delete is a group selection
 * based on id (<i>{@ling BaseColumns#_ID} IN (id1, id2, ...)</i>).
 * @param ids The IDs if all users that should be deleted.
 */
public void bulkDelete(long[] ids) {
    if (ids.length == 0) {
        return;
    }
    StringBuilder where = new StringBuilder();
    where.append(RawContacts._ID);
    where.append(" IN (");
    where.append(Long.toString(ids[0]));
    for (int i = 1; i < ids.length; i++) {
        where.append(',');
        where.append(Long.toString(ids[i]));
    }
    where.append(')');
    try {
        provider.delete(RawContacts.CONTENT_URI, where.toString(), null);
    } catch (RemoteException e) {
        e.printStackTrace();
    }
}
项目:ContactMerger    文件:ContactDataMapper.java   
public int getContactByRawContactID(long id) {
    int result = -1;
    try {
        Cursor cursor = provider.query(
                RawContacts.CONTENT_URI,
                CONTACT_OF_RAW_CONTACT_PROJECTION,
                RawContacts._ID + "=" + id,
                null,
                null);
        try {
            if (cursor.moveToFirst()) {
                result = cursor.getInt(cursor.getColumnIndex(
                            RawContacts.CONTACT_ID));
            }
        } finally {
            cursor.close();
        }
    } catch (RemoteException e) {
        e.printStackTrace();
    }
    return result;
}
项目:ContactMerger    文件:ContactDataMapper.java   
/**
 * Retrieve a single jid as bound by a local account jid, with or without
 * metadata.
 * @param accountJid The local account jid.
 * @param jid The remote jid.
 * @param metadata True if a second fetch for metadata should be done.
 * @return A single contact.
 */
public RawContact getRawContactByJid(String accountJid, String jid, boolean metadata) {
    RawContact contact = null;
    try {
        Cursor cursor = provider.query(
                RawContacts.CONTENT_URI,
                RAW_CONTACT_PROJECTION_MAP, 
                RawContacts.ACCOUNT_NAME + "=? AND " +
                RawContacts.SOURCE_ID + "=?",
                new String[]{accountJid, jid},
                null);
        try {
            if (cursor.moveToFirst()) {
                contact = newRawContact(cursor);
                if (metadata) {
                    fetchMetadata(contact);
                }
            }
        } finally {
            cursor.close();
        }
    } catch (RemoteException e) {
        e.printStackTrace();
    }
    return contact;
}
项目:ContactMerger    文件:ContactDataMapper.java   
/**
 * Create a new raw contact for the current cursor.
 * @param cursor The DB cursor, scrolled to the row in question.
 * @return
 */
private RawContact newRawContact(Cursor cursor) {
    RawContact contact = new RawContact();
    int index = cursor.getColumnIndex(RawContacts._ID);
    contact.setID(cursor.getLong(index));

    index = cursor.getColumnIndex(RawContacts.ACCOUNT_NAME);
    contact.setAccountName(cursor.getString(index));

    index = cursor.getColumnIndex(RawContacts.ACCOUNT_TYPE);
    contact.setAccountType(cursor.getString(index));

    index = cursor.getColumnIndex(RawContacts.SOURCE_ID);
    contact.setSourceID(cursor.getString(index));

    for (int i = 0; i < RAW_CONTACTS_SYNC_FIELDS.length; i++) {
        index = cursor.getColumnIndex(RAW_CONTACTS_SYNC_FIELDS[i]);
        contact.setSync(i, cursor.getString(index));
    }
    return contact;
}
项目:openxface-android    文件:XContactAccessorAPILevel5Impl.java   
/**
 * 获取手机上所有联系人的contactId,sim卡和email帐户除外
 */
private Set<String> getContactIdOnlyPhoneBook() {
    // sumsung sim account type: 'vnd.sec.contact.sim',
    // htc sim account type: 'com.anddroid.contacts.sim'
    // accountType='com.google' represent google account type, we think it
    // is phone account type
    Cursor cursor = queryDB(RawContacts.CONTENT_URI,
            new String[] { RawContacts.CONTACT_ID }, RawContacts.CONTACT_ID
                    + " NOT NULL AND (" + RawContacts.ACCOUNT_TYPE
                    + " NOT LIKE '%sim%' or " + RawContacts.ACCOUNT_TYPE
                    + " IS NULL)", null);
    Set<String> contactIds = new HashSet<String>();
    if (cursor.moveToFirst()) {
        contactIds.add(cursor.getString(0));
        while (cursor.moveToNext()) {
            contactIds.add(cursor.getString(0));
        }
    }
    cursor.close();
    return contactIds;
}
项目:PeSanKita-android    文件:ContactsDatabase.java   
private void removeContactVoiceSupport(List<ContentProviderOperation> operations, long rawContactId) {
  operations.add(ContentProviderOperation.newUpdate(RawContacts.CONTENT_URI)
                                         .withSelection(RawContacts._ID + " = ?", new String[] {String.valueOf(rawContactId)})
                                         .withValue(RawContacts.SYNC4, "false")
                                         .build());

  operations.add(ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI.buildUpon().appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build())
                                         .withSelection(ContactsContract.Data.RAW_CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?",
                                                        new String[] {String.valueOf(rawContactId), CALL_MIMETYPE})
                                         .withYieldAllowed(true)
                                         .build());
}
项目:PeSanKita-android    文件:ContactsDatabase.java   
private void removeTextSecureRawContact(List<ContentProviderOperation> operations,
                                        Account account, long rowId)
{
  operations.add(ContentProviderOperation.newDelete(RawContacts.CONTENT_URI.buildUpon()
                                                                           .appendQueryParameter(RawContacts.ACCOUNT_NAME, account.name)
                                                                           .appendQueryParameter(RawContacts.ACCOUNT_TYPE, account.type)
                                                                           .appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build())
                                         .withYieldAllowed(true)
                                         .withSelection(BaseColumns._ID + " = ?", new String[] {String.valueOf(rowId)})
                                         .build());
}
项目:PeSanKita-android    文件:ContactIdentityManagerGingerbread.java   
@Override
public List<Long> getSelfIdentityRawContactIds() {
  long selfIdentityContactId = getSelfIdentityContactId();

  if (selfIdentityContactId == -1)
    return null;

  Cursor cursor                 = null;
  ArrayList<Long> rawContactIds = new ArrayList<Long>();

  try {
    cursor = context.getContentResolver().query(RawContacts.CONTENT_URI,
                                                new String[] {RawContacts._ID},
                                                RawContacts.CONTACT_ID + " = ?",
                                                new String[] {selfIdentityContactId+""},
                                                null);

    if (cursor == null || cursor.getCount() == 0)
      return null;

    while (cursor.moveToNext()) {
      rawContactIds.add(Long.valueOf(cursor.getLong(0)));
    }

    return rawContactIds;

  } finally {
    if (cursor != null)
      cursor.close();
  }
}
项目:amap    文件:AddressServiceImpl.java   
public static void AddContact(ContentResolver mResolver, String name, String number, String groupName)
{
    Log.i("hoperun", "name= " + name + ";number=" + number);
    if (!queryFromContact(mResolver, name, number))
    {
        ContentValues values = new ContentValues();
        // 首先向RawContacts.CONTENT_URI执行一个空值插入,目的是获取系统返回的rawContactId
        Uri rawContactUri = mResolver.insert(RawContacts.CONTENT_URI, values);

        if (rawContactUri != null)
        {
            long rawContactId = ContentUris.parseId(rawContactUri);
            // 往data表插入姓名数据
            values.clear();
            values.put(Data.RAW_CONTACT_ID, rawContactId);
            values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);// 内容类型
            values.put(StructuredName.GIVEN_NAME, name);
            mResolver.insert(ContactsContract.Data.CONTENT_URI, values);
            // 往data表插入电话数据
            values.clear();
            values.put(Data.RAW_CONTACT_ID, rawContactId);
            values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
            values.put(Phone.NUMBER, number);
            values.put(Phone.TYPE, Phone.TYPE_MOBILE);
            mResolver.insert(ContactsContract.Data.CONTENT_URI, values);
        }
        else
        {
            Log.i("hoperun", "name= " + name + ";number=" + number);
        }

    }
    else
    {
        Log.i("hoperun", "repeat name= " + name + ";number=" + number);
    }
}
项目:SmartChart    文件:CommonUtils.java   
/**
 * 往手机通讯录插入联系人
 *
 * @param ct
 * @param name
 * @param tel
 * @param email
 */
public static void insertContact(Context ct, String name, String tel, String email) {
    ContentValues values = new ContentValues();
    // 首先向RawContacts.CONTENT_URI执行一个空值插入,目的是获取系统返回的rawContactId
    Uri rawContactUri = ct.getContentResolver().insert(RawContacts.CONTENT_URI, values);
    long rawContactId = ContentUris.parseId(rawContactUri);
    // 往data表入姓名数据
    if (!TextUtils.isEmpty(tel)) {
        values.clear();
        values.put(Data.RAW_CONTACT_ID, rawContactId);
        values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);// 内容类型
        values.put(StructuredName.GIVEN_NAME, name);
        ct.getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
    }
    // 往data表入电话数据
    if (!TextUtils.isEmpty(tel)) {
        values.clear();
        values.put(Data.RAW_CONTACT_ID, rawContactId);
        values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);// 内容类型
        values.put(Phone.NUMBER, tel);
        values.put(Phone.TYPE, Phone.TYPE_MOBILE);
        ct.getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
    }
    // 往data表入Email数据
    if (!TextUtils.isEmpty(email)) {
        values.clear();
        values.put(Data.RAW_CONTACT_ID, rawContactId);
        values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);// 内容类型
        values.put(Email.DATA, email);
        values.put(Email.TYPE, Email.TYPE_WORK);
        ct.getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
    }
}
项目:alerta-fraude    文件:ContactManager.java   
/**
 * Called when user picks contact.
 * @param requestCode       The request code originally supplied to startActivityForResult(),
 *                          allowing you to identify who this result came from.
 * @param resultCode        The integer result code returned by the child activity through its setResult().
 * @param intent            An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
 * @throws JSONException
 */
public void onActivityResult(int requestCode, int resultCode, final Intent intent) {
    if (requestCode == CONTACT_PICKER_RESULT) {
        if (resultCode == Activity.RESULT_OK) {
            String contactId = intent.getData().getLastPathSegment();
            // to populate contact data we require  Raw Contact ID
            // so we do look up for contact raw id first
            Cursor c =  this.cordova.getActivity().getContentResolver().query(RawContacts.CONTENT_URI,
                        new String[] {RawContacts._ID}, RawContacts.CONTACT_ID + " = " + contactId, null, null);
            if (!c.moveToFirst()) {
                this.callbackContext.error("Error occured while retrieving contact raw id");
                return;
            }
            String id = c.getString(c.getColumnIndex(RawContacts._ID));
            c.close();

            try {
                JSONObject contact = contactAccessor.getContactById(id);
                this.callbackContext.success(contact);
                return;
            } catch (JSONException e) {
                LOG.e(LOG_TAG, "JSON fail.", e);
            }
        } else if (resultCode == Activity.RESULT_CANCELED) {
            callbackContext.error(OPERATION_CANCELLED_ERROR);
            return;
        }

        this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, UNKNOWN_ERROR));
    }
}
项目:alerta-fraude    文件:ContactManager.java   
/**
 * Called when user picks contact.
 * @param requestCode       The request code originally supplied to startActivityForResult(),
 *                          allowing you to identify who this result came from.
 * @param resultCode        The integer result code returned by the child activity through its setResult().
 * @param intent            An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
 * @throws JSONException
 */
public void onActivityResult(int requestCode, int resultCode, final Intent intent) {
    if (requestCode == CONTACT_PICKER_RESULT) {
        if (resultCode == Activity.RESULT_OK) {
            String contactId = intent.getData().getLastPathSegment();
            // to populate contact data we require  Raw Contact ID
            // so we do look up for contact raw id first
            Cursor c =  this.cordova.getActivity().getContentResolver().query(RawContacts.CONTENT_URI,
                        new String[] {RawContacts._ID}, RawContacts.CONTACT_ID + " = " + contactId, null, null);
            if (!c.moveToFirst()) {
                this.callbackContext.error("Error occured while retrieving contact raw id");
                return;
            }
            String id = c.getString(c.getColumnIndex(RawContacts._ID));
            c.close();

            try {
                JSONObject contact = contactAccessor.getContactById(id);
                this.callbackContext.success(contact);
                return;
            } catch (JSONException e) {
                LOG.e(LOG_TAG, "JSON fail.", e);
            }
        } else if (resultCode == Activity.RESULT_CANCELED) {
            callbackContext.error(OPERATION_CANCELLED_ERROR);
            return;
        }

        this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, UNKNOWN_ERROR));
    }
}
项目:Cable-Android    文件:ContactsDatabase.java   
private void removeContactVoiceSupport(List<ContentProviderOperation> operations, long rawContactId) {
  operations.add(ContentProviderOperation.newUpdate(RawContacts.CONTENT_URI)
                                         .withSelection(RawContacts._ID + " = ?", new String[] {String.valueOf(rawContactId)})
                                         .withValue(RawContacts.SYNC4, "false")
                                         .build());

  operations.add(ContentProviderOperation.newDelete(ContactsContract.Data.CONTENT_URI.buildUpon().appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build())
                                         .withSelection(ContactsContract.Data.RAW_CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?",
                                                        new String[] {String.valueOf(rawContactId), CALL_MIMETYPE})
                                         .withYieldAllowed(true)
                                         .build());
}
项目:Cable-Android    文件:ContactsDatabase.java   
private void removeTextSecureRawContact(List<ContentProviderOperation> operations,
                                        Account account, long rowId)
{
  operations.add(ContentProviderOperation.newDelete(RawContacts.CONTENT_URI.buildUpon()
                                                                           .appendQueryParameter(RawContacts.ACCOUNT_NAME, account.name)
                                                                           .appendQueryParameter(RawContacts.ACCOUNT_TYPE, account.type)
                                                                           .appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build())
                                         .withYieldAllowed(true)
                                         .withSelection(BaseColumns._ID + " = ?", new String[] {String.valueOf(rowId)})
                                         .build());
}
项目:Cable-Android    文件:ContactIdentityManagerGingerbread.java   
@Override
public List<Long> getSelfIdentityRawContactIds() {
  long selfIdentityContactId = getSelfIdentityContactId();

  if (selfIdentityContactId == -1)
    return null;

  Cursor cursor                 = null;
  ArrayList<Long> rawContactIds = new ArrayList<Long>();

  try {
    cursor = context.getContentResolver().query(RawContacts.CONTENT_URI,
                                                new String[] {RawContacts._ID},
                                                RawContacts.CONTACT_ID + " = ?",
                                                new String[] {selfIdentityContactId+""},
                                                null);

    if (cursor == null || cursor.getCount() == 0)
      return null;

    while (cursor.moveToNext()) {
      rawContactIds.add(Long.valueOf(cursor.getLong(0)));
    }

    return rawContactIds;

  } finally {
    if (cursor != null)
      cursor.close();
  }
}
项目:smart-mirror-app    文件:ContactManager.java   
/**
 * Called when user picks contact.
 * @param requestCode       The request code originally supplied to startActivityForResult(),
 *                          allowing you to identify who this result came from.
 * @param resultCode        The integer result code returned by the child activity through its setResult().
 * @param intent            An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
 * @throws JSONException
 */
public void onActivityResult(int requestCode, int resultCode, final Intent intent) {
    if (requestCode == CONTACT_PICKER_RESULT) {
        if (resultCode == Activity.RESULT_OK) {
            String contactId = intent.getData().getLastPathSegment();
            // to populate contact data we require  Raw Contact ID
            // so we do look up for contact raw id first
            Cursor c =  this.cordova.getActivity().getContentResolver().query(RawContacts.CONTENT_URI,
                        new String[] {RawContacts._ID}, RawContacts.CONTACT_ID + " = " + contactId, null, null);
            if (!c.moveToFirst()) {
                this.callbackContext.error("Error occured while retrieving contact raw id");
                return;
            }
            String id = c.getString(c.getColumnIndex(RawContacts._ID));
            c.close();

            try {
                JSONObject contact = contactAccessor.getContactById(id);
                this.callbackContext.success(contact);
                return;
            } catch (JSONException e) {
                Log.e(LOG_TAG, "JSON fail.", e);
            }
        } else if (resultCode == Activity.RESULT_CANCELED) {
            callbackContext.error(OPERATION_CANCELLED_ERROR);
            return;
        }

        this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, UNKNOWN_ERROR));
    }
}
项目:smart-mirror-app    文件:ContactManager.java   
/**
 * Called when user picks contact.
 * @param requestCode       The request code originally supplied to startActivityForResult(),
 *                          allowing you to identify who this result came from.
 * @param resultCode        The integer result code returned by the child activity through its setResult().
 * @param intent            An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
 * @throws JSONException
 */
public void onActivityResult(int requestCode, int resultCode, final Intent intent) {
    if (requestCode == CONTACT_PICKER_RESULT) {
        if (resultCode == Activity.RESULT_OK) {
            String contactId = intent.getData().getLastPathSegment();
            // to populate contact data we require  Raw Contact ID
            // so we do look up for contact raw id first
            Cursor c =  this.cordova.getActivity().getContentResolver().query(RawContacts.CONTENT_URI,
                        new String[] {RawContacts._ID}, RawContacts.CONTACT_ID + " = " + contactId, null, null);
            if (!c.moveToFirst()) {
                this.callbackContext.error("Error occured while retrieving contact raw id");
                return;
            }
            String id = c.getString(c.getColumnIndex(RawContacts._ID));
            c.close();

            try {
                JSONObject contact = contactAccessor.getContactById(id);
                this.callbackContext.success(contact);
                return;
            } catch (JSONException e) {
                Log.e(LOG_TAG, "JSON fail.", e);
            }
        } else if (resultCode == Activity.RESULT_CANCELED) {
            callbackContext.error(OPERATION_CANCELLED_ERROR);
            return;
        }

        this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, UNKNOWN_ERROR));
    }
}
项目:TextSecure    文件:ContactIdentityManagerGingerbread.java   
@Override
public List<Long> getSelfIdentityRawContactIds() {
  long selfIdentityContactId = getSelfIdentityContactId();

  if (selfIdentityContactId == -1)
    return null;

  Cursor cursor                 = null;
  ArrayList<Long> rawContactIds = new ArrayList<Long>();

  try {
    cursor = context.getContentResolver().query(RawContacts.CONTENT_URI,
                                                new String[] {RawContacts._ID},
                                                RawContacts.CONTACT_ID + " = ?",
                                                new String[] {selfIdentityContactId+""},
                                                null);

    if (cursor == null || cursor.getCount() == 0)
      return null;

    while (cursor.moveToNext()) {
      rawContactIds.add(Long.valueOf(cursor.getLong(0)));
    }

    return rawContactIds;

  } finally {
    if (cursor != null)
      cursor.close();
  }
}
项目:PhoneChat    文件:ContactManager.java   
/**
 * Called when user picks contact.
 * @param requestCode       The request code originally supplied to startActivityForResult(),
 *                          allowing you to identify who this result came from.
 * @param resultCode        The integer result code returned by the child activity through its setResult().
 * @param intent            An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
 * @throws JSONException
 */
public void onActivityResult(int requestCode, int resultCode, final Intent intent) {
    if (requestCode == CONTACT_PICKER_RESULT) {
        if (resultCode == Activity.RESULT_OK) {
            String contactId = intent.getData().getLastPathSegment();
            // to populate contact data we require  Raw Contact ID
            // so we do look up for contact raw id first
            Cursor c =  this.cordova.getActivity().getContentResolver().query(RawContacts.CONTENT_URI,
                        new String[] {RawContacts._ID}, RawContacts.CONTACT_ID + " = " + contactId, null, null);
            if (!c.moveToFirst()) {
                this.callbackContext.error("Error occured while retrieving contact raw id");
                return;
            }
            String id = c.getString(c.getColumnIndex(RawContacts._ID));
            c.close();

            try {
                JSONObject contact = contactAccessor.getContactById(id);
                this.callbackContext.success(contact);
                return;
            } catch (JSONException e) {
                Log.e(LOG_TAG, "JSON fail.", e);
            }
        } else if (resultCode == Activity.RESULT_CANCELED) {
            callbackContext.error(OPERATION_CANCELLED_ERROR);
            return;
        }

        this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, UNKNOWN_ERROR));
    }
}
项目:BigApp_Discuz_Android    文件:ContactUtils.java   
public static void insertContact(Context context, String name, String phone) {
    // 首先插入空值,再得到rawContactsId ,用于下面插值
    ContentValues values = new ContentValues();
    // insert a null value
    Uri rawContactUri = context.getContentResolver().insert(
            RawContacts.CONTENT_URI, values);
    long rawContactsId = ContentUris.parseId(rawContactUri);

    // 往刚才的空记录中插入姓名
    values.clear();
    // A reference to the _ID that this data belongs to
    values.put(StructuredName.RAW_CONTACT_ID, rawContactsId);
    // "CONTENT_ITEM_TYPE" MIME type used when storing this in data table
    values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
    // The name that should be used to display the contact.
    values.put(StructuredName.DISPLAY_NAME, name);
    // insert the real values
    context.getContentResolver().insert(Data.CONTENT_URI, values);
    // 插入电话
    values.clear();
    values.put(Phone.RAW_CONTACT_ID, rawContactsId);
    // String "Data.MIMETYPE":The MIME type of the item represented by this
    // row
    // String "CONTENT_ITEM_TYPE": MIME type used when storing this in data
    // table.
    values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
    values.put(Phone.NUMBER, phone);
    context.getContentResolver().insert(Data.CONTENT_URI, values);
}
项目:Notepad    文件:ContactManager.java   
/**
 * Called when user picks contact.
 * @param requestCode       The request code originally supplied to startActivityForResult(),
 *                          allowing you to identify who this result came from.
 * @param resultCode        The integer result code returned by the child activity through its setResult().
 * @param intent            An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
 * @throws JSONException
 */
public void onActivityResult(int requestCode, int resultCode, final Intent intent) {
    if (requestCode == CONTACT_PICKER_RESULT) {
        if (resultCode == Activity.RESULT_OK) {
            String contactId = intent.getData().getLastPathSegment();
            // to populate contact data we require  Raw Contact ID
            // so we do look up for contact raw id first
            Cursor c =  this.cordova.getActivity().getContentResolver().query(RawContacts.CONTENT_URI,
                        new String[] {RawContacts._ID}, RawContacts.CONTACT_ID + " = " + contactId, null, null);
            if (!c.moveToFirst()) {
                this.callbackContext.error("Error occured while retrieving contact raw id");
                return;
            }
            String id = c.getString(c.getColumnIndex(RawContacts._ID));
            c.close();

            try {
                JSONObject contact = contactAccessor.getContactById(id);
                this.callbackContext.success(contact);
                return;
            } catch (JSONException e) {
                Log.e(LOG_TAG, "JSON fail.", e);
            }
        } else if (resultCode == Activity.RESULT_CANCELED) {
            callbackContext.error(OPERATION_CANCELLED_ERROR);
            return;
        }

        this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, UNKNOWN_ERROR));
    }
}
项目:Notepad    文件:ContactManager.java   
/**
 * Called when user picks contact.
 * @param requestCode       The request code originally supplied to startActivityForResult(),
 *                          allowing you to identify who this result came from.
 * @param resultCode        The integer result code returned by the child activity through its setResult().
 * @param intent            An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
 * @throws JSONException
 */
public void onActivityResult(int requestCode, int resultCode, final Intent intent) {
    if (requestCode == CONTACT_PICKER_RESULT) {
        if (resultCode == Activity.RESULT_OK) {
            String contactId = intent.getData().getLastPathSegment();
            // to populate contact data we require  Raw Contact ID
            // so we do look up for contact raw id first
            Cursor c =  this.cordova.getActivity().getContentResolver().query(RawContacts.CONTENT_URI,
                        new String[] {RawContacts._ID}, RawContacts.CONTACT_ID + " = " + contactId, null, null);
            if (!c.moveToFirst()) {
                this.callbackContext.error("Error occured while retrieving contact raw id");
                return;
            }
            String id = c.getString(c.getColumnIndex(RawContacts._ID));
            c.close();

            try {
                JSONObject contact = contactAccessor.getContactById(id);
                this.callbackContext.success(contact);
                return;
            } catch (JSONException e) {
                Log.e(LOG_TAG, "JSON fail.", e);
            }
        } else if (resultCode == Activity.RESULT_CANCELED) {
            callbackContext.error(OPERATION_CANCELLED_ERROR);
            return;
        }

        this.callbackContext.sendPluginResult(new PluginResult(PluginResult.Status.ERROR, UNKNOWN_ERROR));
    }
}