微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android.provider.ContactsContract.Data的实例源码

项目:Linphone4Android    文件ContactsManager.java   
public void deleteMultipleContactsAtOnce(List<String> ids) {
    String select = Data.CONTACT_ID + " = ?";
    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();

    for (String id : ids) {
        String[] args = new String[] { id };
        ops.add(ContentProviderOperation.newDelete(ContactsContract.RawContacts.CONTENT_URI).withSelection(select,args).build());
    }

    ContentResolver cr = ContactsManager.getInstance().getContentResolver();
    try {
        cr.applyBatch(ContactsContract.AUTHORITY,ops);
    } catch (Exception e) {
        Log.e(e);
    }
}
项目:CSipSimple    文件ContactsUtils5.java   
@Override
public Intent getAddContactIntent(String displayName,String csipUri) {
    Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT,Contacts.CONTENT_URI);
    intent.setType(Contacts.CONTENT_ITEM_TYPE);

    if (!TextUtils.isEmpty(displayName)) {
        intent.putExtra(Insert.NAME,displayName);
    }

    if (!TextUtils.isEmpty(csipUri)) {
        ArrayList<ContentValues> data = new ArrayList<ContentValues>();
        ContentValues csipProto = new ContentValues();
        csipProto.put(Data.MIMETYPE,CommonDataKinds.Im.CONTENT_ITEM_TYPE);
        csipProto.put(CommonDataKinds.Im.PROTOCOL,CommonDataKinds.Im.PROTOCOL_CUSTOM);
        csipProto.put(CommonDataKinds.Im.CUSTOM_PROTOCOL,SipManager.PROTOCOL_CSIP);
        csipProto.put(CommonDataKinds.Im.DATA,SipUri.getCanonicalSipContact(csipUri,false));
        data.add(csipProto);

        intent.putParcelableArrayListExtra(Insert.DATA,data);
    }

    return intent;
}
项目:NoticeDog    文件WhatsAppApp.java   
String getWhatsAppNumber(String name) {
    Cursor cursor = this.context.getContentResolver().query(Data.CONTENT_URI,new String[]{"data3"},"display_name=? AND mimetype=?",new String[]{name,WHATSAPP_CONTACT_MIMETYPE},null);
    String phoneNumber = null;
    int foundContacts = 0;
    while (cursor.movetoNext()) {
        foundContacts++;
        if (foundContacts > 1) {
            Log.d(TAG,"Found more than one WhatsApp contact -- skipping WhatsApp deeplinking");
            phoneNumber = null;
            break;
        }
        phoneNumber = cursor.getString(cursor.getColumnIndex("data3"));
        Log.d(TAG,"Found WhatsApp # " + phoneNumber + " for " + name);
    }
    cursor.close();
    return phoneNumber;
}
项目:TextSecure    文件ContactAccessor.java   
public List<ContactData> getGroupMembership(Context context,long groupId) {
  LinkedList<ContactData> contacts = new LinkedList<ContactData>();
  Cursor groupMembership           = null;

  try {
    String selection = ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID + " = ? AND " +
                       ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE + " = ?";
    String[] args    = new String[] {groupId+"",ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE};

    groupMembership = context.getContentResolver().query(Data.CONTENT_URI,null,selection,args,null);

    while (groupMembership != null && groupMembership.movetoNext()) {
      String displayName = groupMembership.getString(groupMembership.getColumnIndexOrThrow(Data.disPLAY_NAME));
      long contactId     = groupMembership.getLong(groupMembership.getColumnIndexOrThrow(Data.CONTACT_ID));

      contacts.add(getContactData(context,displayName,contactId));
    }
  } finally {
    if (groupMembership != null)
      groupMembership.close();
  }

  return contacts;
}
项目:Madad_SOS    文件ContactItemFragment.java   
@Override
public Loader<Cursor> onCreateLoader(int id,Bundle args) {
    // Choose the proper action
    switch (id) {
        case DETAILS_QUERY_ID:
            // Assigns the selection parameter
            mSelectionArgs[0] = mLookupKey;
            Log.i("Info","Key"+mLookupKey);
            // Starts the query
            CursorLoader mloader =
                    new CursorLoader(
                            getActivity(),Data.CONTENT_URI,PROJECTION,SELECTION,mSelectionArgs,SORT_ORDER
                    );
            return mloader;
    }
    return null;
}
项目:phoneContact    文件ContactDAO.java   
/**
 * ������ϵ��ID��ȡ��ϵ������Ⱥ��
 * 
 * @param contactId
 *            ��ϵ��ID
 * @return
 */
public int getGroupIdByContactId(int contactId) {
    Uri uri = ContactsContract.Data.CONTENT_URI;

    String[] RAW_PROJECTION = new String[] { Data.MIMETYPE,Data.DATA1 };
    Cursor cursor = context.getContentResolver().query(uri,RAW_PROJECTION,Data.RAW_CONTACT_ID + "=?",new String[] { contactId + "" },null);
    int groupId = 0;
    while (cursor.movetoNext()) {
        String mime = cursor.getString(cursor.getColumnIndex("mimetype"));

        if ("vnd.android.cursor.item/group_membership".equals(mime)) {
            groupId = cursor.getInt(cursor.getColumnIndex("data1"));
        }
    }
    cursor.close();
    return groupId;
}
项目:TextSecureSMP    文件ContactAccessor.java   
public List<ContactData> getGroupMembership(Context context,contactId));
    }
  } finally {
    if (groupMembership != null)
      groupMembership.close();
  }

  return contacts;
}
项目:SDC    文件ContactsListFragment.java   
@Override
protected Void doInBackground(Long... ids) {
    String[] projection = new String[] {Phone.disPLAY_NAME,Phone.TYPE,Phone.NUMBER,Phone.LABEL};
    long contactId = ids[0];

    final Cursor phoneCursor = getActivity().getContentResolver().query(
            Phone.CONTENT_URI,projection,Data.CONTACT_ID + "=?",new String[]{String.valueOf(contactId)},null);

    if(phoneCursor != null && phoneCursor.movetoFirst() && phoneCursor.getCount() == 1) {
        final int contactNumberColumnIndex  = phoneCursor.getColumnIndex(Phone.NUMBER);
        mPhoneNumber = phoneCursor.getString(contactNumberColumnIndex);
        int type = phoneCursor.getInt(phoneCursor.getColumnIndexOrThrow(Phone.TYPE));
        mPhoneLabel = phoneCursor.getString(phoneCursor.getColumnIndex(Phone.LABEL));
        mPhoneLabel = Phone.getTypeLabel(getResources(),type,mPhoneLabel).toString();
        phoneCursor.close();
    }

    return null;
}
项目:mc_backup    文件ContactService.java   
private ContentValues createAddressContentValues(final JSONObject address,final int typeConstant,final String type) throws JSONException {
    ContentValues contentValues = new ContentValues();
    contentValues.put(Data.MIMETYPE,StructuredPostal.CONTENT_ITEM_TYPE);
    contentValues.put(StructuredPostal.STREET,address.optString("streetAddress"));
    contentValues.put(StructuredPostal.CITY,address.optString("locality"));
    contentValues.put(StructuredPostal.REGION,address.optString("region"));
    contentValues.put(StructuredPostal.POSTCODE,address.optString("postalCode"));
    contentValues.put(StructuredPostal.COUNTRY,address.optString("countryName"));

    if (type != null) {
        contentValues.put(StructuredPostal.TYPE,typeConstant);

        // If a custom type,add a label
        if (typeConstant == BaseTypes.TYPE_CUSTOM) {
            contentValues.put(StructuredPostal.LABEL,type);
        }
    }

    if (address.has("pref")) {
        contentValues.put(Data.IS_SUPER_PRIMARY,address.getBoolean("pref") ? 1 : 0);
    }

    return contentValues;
}
项目:mc_backup    文件ContactService.java   
private ContentValues createContentValues(final String mimeType,final String value,final String type,final boolean preferredValue) {
    ContentValues contentValues = new ContentValues();
    contentValues.put(Data.MIMETYPE,mimeType);
    contentValues.put(Data.DATA1,value);
    contentValues.put(Data.IS_SUPER_PRIMARY,preferredValue ? 1 : 0);

    if (type != null) {
        contentValues.put(Data.DATA2,add a label
        if (typeConstant == BaseTypes.TYPE_CUSTOM) {
            contentValues.put(Data.DATA3,type);
        }
    }

    return contentValues;
}
项目: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());
}
项目:android-authenticator    文件ContactManager.java   
/**
 * Returns the Data id for a sample SyncAdapter contact's profile row,or 0
 * if the sample SyncAdapter user isn't found.
 *
 * @param resolver a content resolver
 * @param userId   the sample SyncAdapter user ID to lookup
 * @return the profile Data row id,or 0 if not found
 */
private static long lookupProfile(ContentResolver resolver,String userId) {

    long profileId = 0;
    final Cursor c =
            resolver.query(Data.CONTENT_URI,ProfileQuery.PROJECTION,ProfileQuery.SELECTION,new String[]{String.valueOf(userId)},null);
    try {
        if ((c != null) && c.movetoFirst()) {
            profileId = c.getLong(ProfileQuery.COLUMN_ID);
        }
    } finally {
        if (c != null) {
            c.close();
        }
    }
    return profileId;
}
项目:HtcOneTweaker    文件TweakerbroadcastReceiver.java   
public void getPhoneNumbers(String id)
{
    Log.d("getPhoneNumbers","looking data for contact id: " + id);
    Cursor pCur = mContext.getContentResolver().query(Data.CONTENT_URI,new String[]
    { Data._ID,Phone.LABEL },Data.CONTACT_ID + "=?" + " AND "
               + Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "'",new String[]
    { String.valueOf(id) },null);

    while (pCur.movetoNext())
    {
        String phoneNumber = pCur.getString(1);
        String phoneType = pCur.getString(2);
        String phoneLabel = pCur.getString(3);

        if (isNumeric(phoneType))
        {
            Log.d("getPhoneNumbers","phoneNumber: " + phoneNumber + ",phoneType: " + phoneType + ",phoneLabel: " + phoneLabel);
        }
    }
    pCur.close();
    return;
}
项目:androidclient    文件Syncer.java   
private void addContactData(String username,String phone,List<ContentProviderOperation> operations,int index) {
    ContentProviderOperation.Builder builder;
    final int opIndex = index * 3;

    // create a Data record of common type 'Structuredname' for our RawContact
    builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
        .withValueBackReference(ContactsContract.CommonDataKinds.Structuredname.RAW_CONTACT_ID,opIndex)
        .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Structuredname.CONTENT_ITEM_TYPE)
        .withValue(ContactsContract.CommonDataKinds.Structuredname.disPLAY_NAME,username);
    operations.add(builder.build());

    // create a Data record of custom type 'org.kontalk.user' to display a link to the conversation
    builder = ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
        .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,Users.CONTENT_ITEM_TYPE)
        .withValue(DATA_COLUMN_disPLAY_NAME,username)
        .withValue(DATA_COLUMN_ACCOUNT_NAME,mContext.getString(R.string.app_name))
        .withValue(DATA_COLUMN_PHONE,phone)
        .withYieldAllowed(true);
    operations.add(builder.build());
}
项目: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);
    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();

}
项目:CucumberSync    文件LocalAddressBook.java   
private void populateStructuredname(Contact c) throws remoteexception {
    @Cleanup Cursor cursor = providerClient.query(dataURI(),new String[] {
            /* 0 */ Structuredname.disPLAY_NAME,Structuredname.PREFIX,Structuredname.GIVEN_NAME,/* 3 */ Structuredname.MIDDLE_NAME,Structuredname.FAMILY_NAME,Structuredname.SUFFIX,/* 6 */ Structuredname.PHONETIC_GIVEN_NAME,Structuredname.PHONETIC_MIDDLE_NAME,Structuredname.PHONETIC_FAMILY_NAME
        },Structuredname.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=?",new String[] { String.valueOf(c.getLocalID()),Structuredname.CONTENT_ITEM_TYPE },null);

    if (cursor != null && cursor.movetoNext()) {
        c.setdisplayName(cursor.getString(0));

        c.setPrefix(cursor.getString(1));
        c.setGivenname(cursor.getString(2));
        c.setMiddleName(cursor.getString(3));
        c.setFamilyName(cursor.getString(4));
        c.setSuffix(cursor.getString(5));

        c.setPhoneticGivenname(cursor.getString(6));
        c.setPhoneticMiddleName(cursor.getString(7));
        c.setPhoneticFamilyName(cursor.getString(8));
    }
}
项目:CucumberSync    文件LocalAddressBook.java   
protected void populateEmailAddresses(Contact c) throws remoteexception {
    @Cleanup Cursor cursor = providerClient.query(dataURI(),new String[] { Email.TYPE,Email.ADDRESS,Email.LABEL,Email.IS_SUPER_PRIMARY },Email.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=?",Email.CONTENT_ITEM_TYPE },null);
    while (cursor != null && cursor.movetoNext()) {
        ezvcard.property.Email email = new ezvcard.property.Email(cursor.getString(1));
        switch (cursor.getInt(0)) {
        case Email.TYPE_HOME:
            email.addType(EmailType.HOME);
            break;
        case Email.TYPE_WORK:
            email.addType(EmailType.WORK);
            break;
        case Email.TYPE_MOBILE:
            email.addType(Contact.EMAIL_TYPE_MOBILE);
            break;
        case Email.TYPE_CUSTOM:
            String customType = cursor.getString(2);
            if (!StringUtils.isEmpty(customType))
                email.addType(EmailType.get(labelToXName(customType)));
        }
        if (cursor.getInt(3) != 0)  // IS_PRIMARY
            email.addType(EmailType.PREF);
        c.getEmails().add(email);
    }
}
项目: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 + "=?",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));
    }
}
项目:yako    文件FacebookFriendProvider.java   
private static Set<String> getContactsFacebookIds(final Activity activity) {

    Set<String> FacebookIds = new HashSet<String>();

    String selection = Data.MIMETYPE + " = ? "
            + " AND " + Data.DATA6 + " = ?";

    String[] selectionArgs = {
      ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE,Settings.Contacts.DataKinds.Facebook.CUSTOM_NAME
    };

    Cursor cursor = activity.getContentResolver().query(Data.CONTENT_URI,new String[]{Data.DATA10},selectionArgs,null);

    while (cursor.movetoNext()) {
      FacebookIds.add(cursor.getString(0));
    }

    return FacebookIds;

  }
项目:CucumberSync    文件LocalAddressBook.java   
protected void populateEvents(Contact c) throws remoteexception {
    @Cleanup Cursor cursor = providerClient.query(dataURI(),new String[] { CommonDataKinds.Event.TYPE,CommonDataKinds.Event.START_DATE },CommonDataKinds.Event.CONTENT_ITEM_TYPE },null);
    while (cursor != null && cursor.movetoNext()) {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd",Locale.US);
        try {
            Date date = formatter.parse(cursor.getString(1));
            switch (cursor.getInt(0)) {
            case CommonDataKinds.Event.TYPE_ANNIVERSARY:
                c.setAnniversary(new Anniversary(date));
                break;
            case CommonDataKinds.Event.TYPE_BIRTHDAY:
                c.setBirthDay(new Birthday(date));
                break;
            }
        } catch (ParseException e) {
            Log.w(TAG,"Couldn't parse local birthday/anniversary date",e);
        }
    }
}
项目:CucumberSync    文件LocalAddressBook.java   
protected void populateSipAddress(Contact c) throws remoteexception {
    @Cleanup Cursor cursor = providerClient.query(dataURI(),new String[] { SipAddress.SIP_ADDRESS,SipAddress.TYPE,SipAddress.LABEL },SipAddress.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=?",SipAddress.CONTENT_ITEM_TYPE },null);
    if (cursor != null && cursor.movetoNext()) {
        Impp impp = new Impp("sip:" + cursor.getString(0));
        switch (cursor.getInt(1)) {
        case SipAddress.TYPE_HOME:
            impp.addType(ImppType.HOME);
            break;
        case SipAddress.TYPE_WORK:
            impp.addType(ImppType.WORK);
            break;
        case SipAddress.TYPE_CUSTOM:
            String customType = cursor.getString(2);
            if (!StringUtils.isEmpty(customType))
                impp.addType(ImppType.get(labelToXName(customType)));
        }
        c.getImpps().add(impp);
    }
}
项目:ContactMerger    文件ContactDataMapper.java   
/**
 * Fetch the Metadata of a single account. All results will be attached
 * to the contact.
 * @param contact The contact that should be enriched.
 */
private void fetchMetadata(RawContact contact) {
    try {
        Cursor cursor = provider.query(
                Data.CONTENT_URI,DATA_PROJECTION_MAP,new String[]{Long.toString(contact.getID())},null);
        try {
            if (cursor.movetoFirst()) {
                do {
                    contact.setMetadata(newMetadata(cursor));
                } while (cursor.movetoNext());
            }
        } finally {
            cursor.close();
        }
    } catch (remoteexception e) {
        e.printstacktrace();
    }
}
项目:CucumberSync    文件LocalAddressBook.java   
protected Builder buildOrganization(Builder builder,Contact contact) {
    if (contact.getorganization() == null && contact.getJobTitle() == null && contact.getJobDescription() == null)
        return null;

    ezvcard.property.Organization organization = contact.getorganization();
    String company = null,department = null;
    if (organization != null) {
        Iterator<String> org = organization.getValues().iterator();
        if (org.hasNext())
            company = org.next();
        if (org.hasNext())
            department = org.next();
    }

    return builder
            .withValue(Data.MIMETYPE,Organization.CONTENT_ITEM_TYPE)
            .withValue(Organization.COMPANY,company)
            .withValue(Organization.DEPARTMENT,department)
            .withValue(Organization.TITLE,contact.getJobTitle())
            .withValue(Organization.JOB_DESCRIPTION,contact.getJobDescription());
}
项目:Securecom-Messaging    文件ContactAccessor.java   
public List<ContactData> getGroupMembership(Context context,long groupId) {
    LinkedList<ContactData> contacts = new LinkedList<ContactData>();
    Cursor groupMembership = null;

    try {
        String selection = ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID + " = ? AND " +
                ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE + " = ?";
        String[] args    = new String[] {groupId+"",ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE};

        groupMembership = context.getContentResolver().query(Data.CONTENT_URI,null);

        while (groupMembership != null && groupMembership.movetoNext()) {
            String displayName = groupMembership.getString(groupMembership.getColumnIndexOrThrow(Data.disPLAY_NAME));
            long contactId     = groupMembership.getLong(groupMembership.getColumnIndexOrThrow(Data.CONTACT_ID));

            contacts.add(getContactData(context,contactId));
        }
    } finally {
        if (groupMembership != null)
            groupMembership.close();
    }

    return contacts;
}
项目:Simplicissimus    文件Assets.java   
public Assets(Context context,long contactId) {
    this.context = context;
    cursor = context.getContentResolver().query(
        Data.CONTENT_URI,new String[]{Data._ID,Data.RAW_CONTACT_ID,Data.MIMETYPE,Data.IS_PRIMARY,Data.IS_SUPER_PRIMARY,Data.DATA_VERSION,Data.DATA1,Data.DATA2,Data.DATA3,Data.DATA4,Data.DATA5,Data.DATA6,Data.DATA7,Data.DATA8,Data.DATA9,Data.DATA10,Data.DATA11,Data.DATA12,Data.DATA13,Data.DATA14,Data.DATA15,Data.SYNC1,Data.SYNC2,Data.SYNC3,Data.SYNC4,},Data.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + " IN ( ?,?,? )",new String[]{
            String.valueOf(contactId),Nickname.CONTENT_ITEM_TYPE,Im.CONTENT_ITEM_TYPE,Photo.CONTENT_ITEM_TYPE,null);
    //cursor.movetoFirst();
    columnNames = cursor.getColumnNames();
}
项目:Securecom-Text    文件ContactAccessor.java   
public List<ContactData> getGroupMembership(Context context,contactId));
    }
  } finally {
    if (groupMembership != null)
      groupMembership.close();
  }

  return contacts;
}
项目:SafeSlinger-Android    文件BaseActivity.java   
protected String getContactLookupKeyByContactId(String contactId) {
    if (!SafeSlinger.doesUserHavePermission(Manifest.permission.READ_CONTACTS)) {
        return null;
    }
    if (TextUtils.isEmpty(contactId)) {
        return null;
    }

    String where = Data.CONTACT_ID + " = ?";
    String[] whereParameters = new String[] {
        contactId
    };

    Cursor c = getContentResolver().query(Data.CONTENT_URI,whereParameters,null);
    if (c != null) {
        try {
            if (c.movetoFirst()) {
                String lookup = c.getString(c.getColumnIndexOrThrow(Data.LOOKUP_KEY));
                return lookup;
            }
        } finally {
            c.close();
        }
    }
    return null;
}
项目:SafeSlinger-Android    文件BaseActivity.java   
protected String getContactLookupKeyByRawContactId(String rawContactId) {
    if (!SafeSlinger.doesUserHavePermission(Manifest.permission.READ_CONTACTS)) {
        return null;
    }
    if (TextUtils.isEmpty(rawContactId)) {
        return null;
    }

    String where = Data.RAW_CONTACT_ID + " = ?";
    String[] whereParameters = new String[] {
        rawContactId
    };

    Cursor c = getContentResolver().query(Data.CONTENT_URI,null);
    if (c != null) {
        try {
            if (c.movetoFirst()) {
                String lookup = c.getString(c.getColumnIndexOrThrow(Data.LOOKUP_KEY));
                return lookup;
            }
        } finally {
            c.close();
        }
    }
    return null;
}
项目:haxsync    文件ContactUtil.java   
public static Photo getPhoto(ContentResolver c,long rawContactId){
    Photo photo = new Photo();
    String where = ContactsContract.Data.RAW_CONTACT_ID + " = '" + rawContactId 
            + "' AND " + ContactsContract.Data.MIMETYPE + " = '" + ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE + "'";



    Cursor c1 = c.query(ContactsContract.Data.CONTENT_URI,new String[] {ContactsContract.CommonDataKinds.Photo.PHOTO,ContactsContract.Data.SYNC2,ContactsContract.Data.SYNC3 },null);
    if (c1.getCount() > 0){
        c1.movetoLast();
        photo.data = c1.getBlob(c1.getColumnIndex(ContactsContract.CommonDataKinds.Photo.PHOTO));
        photo.timestamp = Long.valueOf(c1.getString(c1.getColumnIndex(ContactsContract.Data.SYNC2)));
        photo.url = c1.getString(c1.getColumnIndex(ContactsContract.Data.SYNC3));
    }
    c1.close();
    return photo;
}
项目:SafeSlinger-Android    文件ContactAccessorApi5.java   
public Uri getDataUri(ContentResolver resolver,String contactLookupKey) {
    if (!SafeSlinger.doesUserHavePermission(Manifest.permission.READ_CONTACTS)) {
        return null;
    }
    Uri lookupUri = Uri.withAppendedpath(ContactsContract.Contacts.CONTENT_LOOKUP_URI,contactLookupKey);
    if (lookupUri != null) {
        Uri personUri = ContactsContract.Contacts.lookupContact(resolver,lookupUri);
        if (personUri != null) {
            return Uri.withAppendedpath(personUri,ContactsContract.Contacts.Data.CONTENT_DIRECTORY);
        } else {
            return null;
        }
    } else {
        return null;
    }
}
项目:SafeSlinger-Android    文件ContactAccessorApi5.java   
public boolean updateDaTarow(Context ctx,String[] proj,String where,String[] args,ContentValues values) {
    Cursor c = ctx.getContentResolver().query(Data.CONTENT_URI,proj,null);
    if (c != null) {
        try {
            if (c.movetoFirst()) {
                // remove old,including dupes
                if (ctx.getContentResolver().delete(Data.CONTENT_URI,args) == 0) {
                    return false; // error
                }
            }
        } finally {
            c.close();
        }
    }
    if (ctx.getContentResolver().insert(Data.CONTENT_URI,values) != null)
        return true; // inserted a new entry or updated entry
    return false; // error
}
项目:SafeSlinger-Android    文件ContactAccessorApi5.java   
private boolean updatePhoto(ContactStruct contact,String rawContactId,Context ctx) {

        // overwrite existing
        String[] proj = new String[] {
                Photo.RAW_CONTACT_ID,Photo.PHOTO
        };
        String where = Photo.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=? AND " + Photo.PHOTO
                + "!=NULL";
        String[] args = new String[] {
                rawContactId,Photo.CONTENT_ITEM_TYPE
        };
        ContentValues values = valuesPhoto(contact);
        values.put(Photo.RAW_CONTACT_ID,rawContactId);

        return updateDaTarow(ctx,values);
    }
项目:SafeSlinger-Android    文件ContactAccessorApi5.java   
private boolean updateUrl(ContactMethod cmethod,Context ctx) {

        // seek for raw contact + url = same
        String[] proj = new String[] {
                Website.RAW_CONTACT_ID,Website.DATA
        };
        String where = Website.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=? AND "
                + Website.DATA + "=?";
        String[] args = new String[] {
                rawContactId,Website.CONTENT_ITEM_TYPE,cmethod.data
        };
        ContentValues values = valuesUrl(cmethod);
        values.put(Website.RAW_CONTACT_ID,values);
    }
项目:SafeSlinger-Android    文件ContactAccessorApi5.java   
private boolean updateEmail(ContactMethod cmethod,Context ctx) {

        // seek for raw contact + email = same
        String[] proj = new String[] {
                Email.RAW_CONTACT_ID,Email.DATA
        };
        String where = Email.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=? AND " + Email.DATA
                + "=?";
        String[] args = new String[] {
                rawContactId,Email.CONTENT_ITEM_TYPE,cmethod.data
        };
        ContentValues values = valuesEmail(cmethod);
        values.put(Email.RAW_CONTACT_ID,values);
    }
项目:ContactMerger    文件ContactDataMapper.java   
/**
 * Store all Metadata info into a given contentvalues instance.
 * @param values A ContentValues instance.
 * @param Metadata The Metadata instance to be saved to ContentValues.
 */
private void put(ContentValues values,Metadata Metadata) {
    if (Metadata.getID() > 0) {
        values.put(Data._ID,Metadata.getID());
    }
    if (Metadata.getRawContactID() > 0) {
        values.put(Data.RAW_CONTACT_ID,Metadata.getRawContactID());
    }
    values.put(Data.MIMETYPE,Metadata.getMimetype());
    for (int i = 0; i < SYNC_FIELDS.length; i++) {
        values.put(SYNC_FIELDS[i],Metadata.getSync(i));
    }
    for (int i = 0; i < DATA_FIELDS.length; i++) {
        values.put(DATA_FIELDS[i],Metadata.getData(i));
    }
    values.put(Data.DATA15,Metadata.getBlob());
}
项目:SafeSlinger-Android    文件ContactAccessorApi5.java   
private boolean updatePostal(Address postal,Context ctx) {

        // seek for raw contact + formatted address = same
        String[] proj = new String[] {
                StructuredPostal.RAW_CONTACT_ID,StructuredPostal.FORMATTED_ADDRESS
        };
        String where = StructuredPostal.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=? AND "
                + StructuredPostal.FORMATTED_ADDRESS + "=?";
        String[] args = new String[] {
                rawContactId,StructuredPostal.CONTENT_ITEM_TYPE,postal.toString()
        };
        ContentValues values = valuesPostal(postal);
        values.put(StructuredPostal.RAW_CONTACT_ID,values);
    }
项目:SafeSlinger-Android    文件ContactAccessorApi5.java   
private boolean updatePhone(PhoneData phone,Context ctx) {

        // seek for raw contact + number = same
        String[] proj = new String[] {
                Phone.RAW_CONTACT_ID,Phone.NUMBER
        };
        String where = Phone.RAW_CONTACT_ID + "=? AND " + Data.MIMETYPE + "=? AND " + Phone.NUMBER
                + "=?";
        String[] args = new String[] {
                rawContactId,Phone.CONTENT_ITEM_TYPE,phone.data
        };
        ContentValues values = valuesPhone(phone);
        values.put(Phone.RAW_CONTACT_ID,values);
    }
项目:haxsync    文件ContactUtil.java   
public static void addBirthday(long rawContactId,String birthday){
    String where = ContactsContract.Data.RAW_CONTACT_ID + " = '" + rawContactId 
            + "' AND " + ContactsContract.Data.MIMETYPE + " = '" + ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE
            + "' AND " + ContactsContract.CommonDataKinds.Event.TYPE + " = '" + ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY + "'";
    Cursor cursor = ContactsSyncAdapterService.mContentResolver.query(ContactsContract.Data.CONTENT_URI,null);
    int count = cursor.getCount();
    cursor.close();
    if (count <= 0){
        ContentValues contentValues = new ContentValues();
        contentValues.put(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE);
        contentValues.put(ContactsContract.Data.RAW_CONTACT_ID,rawContactId);
        contentValues.put(ContactsContract.CommonDataKinds.Event.TYPE,ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY);
        contentValues.put(ContactsContract.CommonDataKinds.Event.START_DATE,birthday);

        try {
            ContactsSyncAdapterService.mContentResolver.insert(ContactsContract.Data.CONTENT_URI,contentValues);
        //  mContentResolver.applyBatch(ContactsContract.AUTHORITY,operationList);
        } catch (Exception e) {
            e.printstacktrace();
            //Log.e("ERROR:",e.^);
        }
    }
}
项目:JCB    文件ContactUtils.java   
private String getNote(String contactId) {
    Cursor cursor = cr.query(Data.CONTENT_URI,new String[] { Data._ID,Note.NOTE },Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE
            + "='" + Note.CONTENT_ITEM_TYPE + "'",new String[] { contactId },null);
    StringBuffer sb = new StringBuffer();
    if (cursor.movetoFirst()) {

        do {
            String noteinfo = cursor.getString(cursor
                    .getColumnIndex(Note.NOTE));
            sb.append(noteinfo);
        } while (cursor.movetoNext());
    } else {
        sb.append("");
    }
    cursor.close();
    return sb.toString();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。