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

android.provider.Contacts的实例源码

项目:CSipSimple    文件Compatibility.java   
public static Intent getContactPhoneIntent() {
    Intent intent = new Intent(Intent.ACTION_PICK);
    /*
     * intent.setAction(Intent.ACTION_GET_CONTENT);
     * intent.setType(Contacts.Phones.CONTENT_ITEM_TYPE);
     */
    if (isCompatible(5)) {
        // Don't use constant to allow backward compat simply
        intent.setData(Uri.parse("content://com.android.contacts/contacts"));
    } else {
        // Fallback for android 4
        intent.setData(Contacts.People.CONTENT_URI);
    }

    return intent;

}
项目:DumbphoneAssistant    文件PhoneUtilDonut.java   
public void create(Contact newPhoneContact) throws Exception {
    // first,we have to create the contact
    ContentValues newPhoneValues = new ContentValues();
    newPhoneValues.put(Contacts.People.NAME,newPhoneContact.getName());
    Uri newPhoneRow = resolver.insert(Contacts.People.CONTENT_URI,newPhoneValues);

    // then we have to add a number
    newPhoneValues.clear();
    newPhoneValues.put(Contacts.People.Phones.TYPE,Contacts.People.Phones.TYPE_MOBILE);
    newPhoneValues.put(Contacts.Phones.NUMBER,newPhoneContact.getNumber());
    // insert the new phone number in the database using the returned uri from creating the contact
    newPhoneRow = resolver.insert(Uri.withAppendedpath(newPhoneRow,Contacts.People.Phones.CONTENT_DIRECTORY),newPhoneValues);

    // if contacts uri returned,there was an error with adding the number
    if (newPhoneRow.getPath().contains("people")) {
        throw new Exception(String.valueOf(R.string.error_phone_number_not_stored));
    }

    // if phone uri returned,everything went OK
    if (!newPhoneRow.getPath().contains("phones")) {
        // some unkNown error has happened
        throw new Exception(String.valueOf(R.string.error_phone_number_error));
    }
}
项目:DumbphoneAssistant    文件PhoneUtilDonut.java   
public Uri retrieveContactUri(Contact contact) {
    String id = contact.getId();
    String[] projection = new String[] { Contacts.Phones.PERSON_ID };
    String path = null;
    Cursor result;
    if (null != id) {
        Uri uri = ContentUris.withAppendedId(Contacts.Phones.CONTENT_URI,Long.valueOf(id));
        result = resolver.query(uri,projection,null,null);
    } else {
        String selection = "name='?' AND number='?'";
        String[] selectionArgs = new String[] { contact.getName(),contact.getNumber() };
        result = resolver.query(Contacts.Phones.CONTENT_URI,selection,selectionArgs,null);
    }
    if (null != result) {
        result.movetoNext();
        path = result.getString(0);
        result.close();
    }
    if (null == path) {
        return null;
    }
    return Uri.withAppendedpath(Contacts.People.CONTENT_URI,path);
}
项目:foursquared    文件AddressBookUtils3and4.java   
@Override
public String getAllContactsPhoneNumbers(Activity activity) {
    StringBuilder sb = new StringBuilder(1024);

    String[] PROJECTION = new String[] {
        PhonesColumns.NUMBER
    };

    Cursor c = activity.managedQuery(Contacts.Phones.CONTENT_URI,PROJECTION,Contacts.Phones.DEFAULT_SORT_ORDER);

    if (c.movetoFirst()) {
        sb.append(c.getString(0));
        while (c.movetoNext()) {
            sb.append(",");
            sb.append(c.getString(0));
        }
    }
    c.close();

    return sb.toString();
}
项目:foursquared    文件AddressBookUtils3and4.java   
@Override
public String getAllContactsEmailAddresses(Activity activity) {
    StringBuilder sb = new StringBuilder(1024);

    String[] PROJECTION = new String[] { 
        Contacts.ContactMethods.DATA
    }; 

    Cursor c = activity.managedQuery(
            Contacts.ContactMethods.CONTENT_EMAIL_URI,Contacts.ContactMethods.DEFAULT_SORT_ORDER); 

    if (c.movetoFirst()) {
        sb.append(c.getString(0));
        while (c.movetoNext()) {
            sb.append(",");
            sb.append(c.getString(0));
        }
    }
    c.close();

    return sb.toString();
}
项目:codenameone    文件AndroidContactsManager.java   
public String[] getContacts(Context context,boolean withNumbers) {
    Vector ids = new Vector();

    String selection = null;
    if (withNumbers) {
        selection = ContactsContract.Contacts.HAS_PHONE_NUMBER + "=1";
    }

    Cursor cursor = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,ContactsContract.CommonDataKinds.Phone.disPLAY_NAME + " ASC");
    while (cursor.movetoNext()) {
        String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
        ids.add(contactId);
    }
    cursor.close();

    String[] contacts = new String[ids.size()];
    for (int i = 0; i < ids.size(); i++) {
        String id = (String) ids.elementAt(i);
        contacts[i] = id;
    }
    return contacts;
}
项目:cn1    文件AndroidContactsManager.java   
public String[] getContacts(Activity context,ContactsContract.CommonDataKinds.Phone.disPLAY_NAME + " ASC");
    while (cursor.movetoNext()) {
        String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
        ids.add(contactId);
    }
    cursor.close();

    String[] contacts = new String[ids.size()];
    for (int i = 0; i < ids.size(); i++) {
        String id = (String) ids.elementAt(i);
        contacts[i] = id;
    }
    return contacts;
}
项目:flingtap-done    文件LocationUtil.java   
public static boolean doesUriContainLocationInfo(Context ctx,Uri uri) throws RuntimeException {
    //Log.d(TAG,"uri.toString()=="+uri.toString());

    final int sdkVersion = Integer.parseInt( Build.VERSION.SDK ); // Build.VERSION.SDK_INT was introduced after API level 3 and so is not compatible with 1.5 devices.

    if( 5 > sdkVersion ){ // Anrdoid 1.x series code.
        if(uri.toString().startsWith(android.provider.Contacts.People.CONTENT_URI.toString())){
            return LocationUtil.doesContactUriContainLocationInfoSDK3(ctx,uri);
        }else{
            return false;
        }

    }else{ // Android 2.x series code.
        if(uri.toString().startsWith("content://com.android.contacts/contacts/lookup")){
            return LocationUtil.doesContactUriContainLocationInfoSDK5(ctx,uri);
        }else{
            return false;
        }           
    }           
}
项目:flingtap-done    文件ContactsListActivity.java   
static String[] getLabelsForKind(Context context,int kind) {
        final Resources resources = context.getResources();
        switch (kind) {
            case Contacts.KIND_PHONE:
                return resources.getStringArray(android.R.array.phoneTypes);
            case Contacts.KIND_EMAIL:
                return resources.getStringArray(android.R.array.emailAddresstypes); 
            case Contacts.KIND_POSTAL:
                return resources.getStringArray(android.R.array.postalAddresstypes);
            case Contacts.KIND_IM:
                return resources.getStringArray(android.R.array.imProtocols);
            case Contacts.KIND_ORGANIZATION:
                return resources.getStringArray(android.R.array.organizationTypes);
//          case EditEntry.KIND_CONTACT:
//              return resources.getStringArray(R.array.otherLabels);
        }
        return null;
    }
项目:flingtap-done    文件ContactsListActivity.java   
public ContactItemlistadapter(Context context) {
            super(context,R.layout.contacts_list_item,false);
            mContext = context;
            mAlphabet = context.getString(R.string.fast_scroll_alphabet); // com.android.internal. 

            mUnkNownNameText = context.getText(android.R.string.unkNownName);
            switch (mMode) {
                case MODE_PICK_POSTAL:
                    mLocalizedLabels = getLabelsForKind(mContext,Contacts.KIND_POSTAL);
                    break;
                default:
                    mLocalizedLabels = getLabelsForKind(mContext,Contacts.KIND_PHONE);
                    break;
            }

//            if ((mMode & MODE_MASK_SHOW_PHOTOS) == MODE_MASK_SHOW_PHOTOS) {
//                mdisplayPhotos = true;
//                setViewResource(R.layout.contacts_list_item_photo);
//                mBitmapCache = new SparseArray<SoftReference<Bitmap>>();
//            }
        }
项目:RHome    文件SmsPopupUtils.java   
/**
 * Looks up a contacts id,given their address (phone number in this case).
 * Returns null if not found
 */
public static String getPersonIdFromPhoneNumber(Context context,String address) {
    if (address == null)
        return null;

    Cursor cursor = context.getContentResolver().query(
            Uri.withAppendedpath(Contacts.Phones.CONTENT_FILTER_URL,address),new String[] { Contacts.Phones.PERSON_ID },null);
    if (cursor != null) {
        try {
            if (cursor.getCount() > 0) {
                cursor.movetoFirst();
                Long id = Long.valueOf(cursor.getLong(0));
                // Log.v("Found person: " + id);
                return (String.valueOf(id));
            }
        } finally {
            cursor.close();
        }
    }
    return null;
}
项目:phonty    文件Caller.java   
boolean isExcludedType(Vector<Integer> vExTypesCode,String sNumber,Context oContext)
  {
    Uri contactRef = Uri.withAppendedpath(Contacts.Phones.CONTENT_FILTER_URL,sNumber);
    final String[] PHOnes_PROJECTION = new String[] 
   {
       People.Phones.NUMBER,// 0
       People.Phones.TYPE,// 1
   };
      Cursor phonesCursor = oContext.getContentResolver().query(contactRef,PHOnes_PROJECTION,null);
if (phonesCursor != null) 
      {                     
           while (phonesCursor.movetoNext()) 
          {                             
              final int type = phonesCursor.getInt(1);                
              if(vExTypesCode.contains(Integer.valueOf(type)))
                return true;        
          }
          phonesCursor.close();
      }
return false;
  }
项目:phonty    文件CallerInfoAsyncQuery.java   
/**
  * Factory method to start query with a number
  */
 public static CallerInfoAsyncQuery startQuery(int token,Context context,String number,String number2,OnQueryCompleteListener listener,Object cookie) {
     //contruct the URI object and start Query.
    String number_search = number;
     if (number.contains("&"))
        number_search = number.substring(0,number.indexOf("&"));
     Uri contactRef = Uri.withAppendedpath(Contacts.Phones.CONTENT_FILTER_URL,number_search);

     CallerInfoAsyncQuery c = new CallerInfoAsyncQuery();
     c.allocate(context,contactRef);

     if (DBG) log("starting query for number: " + number + " handler: " + c.toString());

     //create cookieWrapper,start query
     CookieWrapper cw = new CookieWrapper();
     cw.listener = listener;
     cw.cookie = cookie;
     cw.number = number;
     cw.number2 = number2;

     cw.event = EVENT_NEW_QUERY;
     c.mHandler.startQuery (token,cw,contactRef,null);

     return c;
}
项目:callerid-for-android    文件OldContactsHelper.java   
public CallerIDResult getContact(String phoneNumber) throws noresultException {
    final Uri uri = Uri.withAppendedpath(Contacts.Phones.CONTENT_FILTER_URL,Uri.encode(phoneNumber));
    final ContentResolver contentResolver = application.getContentResolver();
    final Cursor cursor = contentResolver.query(uri,GET_CONTACT_PROJECTION,null);
    try{
        if(cursor.movetoNext()){
            CallerIDResult ret = new CallerIDResult();
            ret.setPhoneNumber(cursor.getString(NUMBER_COLUMN_INDEX));
            ret.setName(cursor.getString(disPLAY_NAME_COLUMN_INDEX));
            return ret;
        }else{
            throw new noresultException();
        }
    }finally{
        cursor.close();
    }
}
项目:BibSearch    文件ResultHandler.java   
final void addContact(String[] names,String[] phoneNumbers,String[] emails,String note,String address,String org,String title) {

  // Only use the first name in the array,if present.
  Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT,Contacts.CONTENT_URI);
  intent.setType(Contacts.People.CONTENT_ITEM_TYPE);
  putExtra(intent,Contacts.Intents.Insert.NAME,names != null ? names[0] : null);

  int phoneCount = Math.min(phoneNumbers != null ? phoneNumbers.length : 0,Contents.PHONE_KEYS.length);
  for (int x = 0; x < phoneCount; x++) {
    putExtra(intent,Contents.PHONE_KEYS[x],phoneNumbers[x]);
  }

  int emailCount = Math.min(emails != null ? emails.length : 0,Contents.EMAIL_KEYS.length);
  for (int x = 0; x < emailCount; x++) {
    putExtra(intent,Contents.EMAIL_KEYS[x],emails[x]);
  }

  putExtra(intent,Contacts.Intents.Insert.NOTES,note);
  putExtra(intent,Contacts.Intents.Insert.POSTAL,address);
  putExtra(intent,Contacts.Intents.Insert.COMPANY,org);
  putExtra(intent,Contacts.Intents.Insert.JOB_TITLE,title);
  launchIntent(intent);
}
项目:buildAPKsApps    文件EventReceiver.java   
/**
 * Turns a converts the sender,either phone number of optionally the
 * contact name,into associated Morse code timings.
 * 
 * (Uses deprecated APIs to support pre-2.0 devices.)
 * @param context
 * @param sender
 * @return <pre>ArrayList</pre> of <pre>Long</pre>s of off/on vibration intervals
 */
private ArrayList<Long> convertSenderToVibrations(Context context,String sender) {
    if (this.settings.getBoolean(context.getString(R.string.preference_lookup_contact_name),true)) {
        final String[] projection = new String[] { Contacts.PeopleColumns.disPLAY_NAME };
        final String selection = Contacts.Phones.NUMBER + " = " + sender;
        final Cursor results = context.getContentResolver().query(Contacts.Phones.CONTENT_URI,Contacts.ContactMethods.PERSON_ID);

        if (results.movetoFirst()) {
            return this.convertToVibrations(results.getString(results.getColumnIndex(Contacts.PeopleColumns.disPLAY_NAME)));
        }
    }
    return this.convertToVibrations(sender,true);
}
项目:appinventor-extensions    文件PhoneNumberPicker.java   
/**
 * For versions before Honeycomb,we get all the contact info from the same table.
 */
public void preHoneycombGetContactInfo(Cursor cursor) {
  if (cursor.movetoFirst()) {
    contactName = guardCursorGetString(cursor,NAME_INDEX);
    phoneNumber = guardCursorGetString(cursor,NUMBER_INDEX);
    int contactId = cursor.getInt(PERSON_INDEX);
    Uri cUri = ContentUris.withAppendedId(Contacts.People.CONTENT_URI,contactId);
    contactPictureUri = cUri.toString();
    String emailId = guardCursorGetString(cursor,EMAIL_INDEX);
    emailAddress = getEmailAddress(emailId);
  }
}
项目:appinventor-extensions    文件ContactPicker.java   
protected ContactPicker(ComponentContainer container,Uri intentUri) {
  super(container);
  activityContext = container.$context();

  if (SdkLevel.getLevel() >= SdkLevel.LEVEL_HONEYCOMB_MR1 && intentUri.equals(Contacts.People.CONTENT_URI)) {
    this.intentUri = HoneycombMR1Util.getContentUri();
  } else if (SdkLevel.getLevel() >= SdkLevel.LEVEL_HONEYCOMB_MR1 && intentUri.equals(Contacts.Phones.CONTENT_URI)) {
    this.intentUri = HoneycombMR1Util.getPhoneContentUri();
  } else {
    this.intentUri = intentUri;
  }
}
项目:appinventor-extensions    文件ContactPicker.java   
/**
 * Email address getter for pre-Honeycomb.
 */
protected String getEmailAddress(String emailId) {
  int id;
  try {
    id = Integer.parseInt(emailId);
  } catch (NumberFormatException e) {
    return "";
  }

  String data = "";
  String where = "contact_methods._id = " + id;
  String[] projection = {
    Contacts.ContactMethods.DATA
  };
  Cursor cursor = activityContext.getContentResolver().query(
      Contacts.ContactMethods.CONTENT_EMAIL_URI,where,null);
  try {
    if (cursor.movetoFirst()) {
      data = guardCursorGetString(cursor,0);
    }
  } finally {
    cursor.close();
  }
  // this extra check for null might be redundant,but we given that there are mysterIoUs errors
  // on some phones,we'll leave it in just to be extra careful
  return ensureNotNull(data);
}
项目:appinventor-extensions    文件MediaUtil.java   
private static InputStream openMedia(Form form,String mediaPath,MediaSource mediaSource)
    throws IOException {
  switch (mediaSource) {
    case ASSET:
      return getAssetsIgnoreCaseInputStream(form,mediaPath);

    case REPL_ASSET:
      return new FileInputStream(replAssetPath(mediaPath));

    case SDCARD:
      return new FileInputStream(mediaPath);

    case FILE_URL:
    case URL:
      return new URL(mediaPath).openStream();

    case CONTENT_URI:
      return form.getContentResolver().openInputStream(Uri.parse(mediaPath));

    case CONTACT_URI:
      // Open the photo for the contact.
      InputStream is = null;
      if (SdkLevel.getLevel() >= SdkLevel.LEVEL_HONEYCOMB_MR1) {
        is = HoneycombMR1Util.openContactPhotoInputStreamHelper(form.getContentResolver(),Uri.parse(mediaPath));
      } else {
        is = Contacts.People.openContactPhotoInputStream(form.getContentResolver(),Uri.parse(mediaPath));
      }
      if (is != null) {
        return is;
      }
      // There's no photo for the contact.
      throw new IOException("Unable to open contact photo " + mediaPath + ".");
  }
  throw new IOException("Unable to open media " + mediaPath + ".");
}
项目:DumbphoneAssistant    文件SimUtil.java   
/**
 * Retrieves all contacts from the SIM card.
 * 
 * @return ArrayList containing Contact objects from the stored SIM information
 */
public ArrayList<Contact> get() {
    final String[] simProjection = new String[] {
            Contacts.PeopleColumns.NAME,Contacts.PhonesColumns.NUMBER,android.provider.BaseColumns._ID
    };
    Cursor results = resolver.query(
            simUri,simProjection,android.provider.Contacts.PeopleColumns.NAME
    );

    final ArrayList<Contact> simContacts = new ArrayList<>();
    if (results != null) {
        if (results.getCount() > 0) {
            while (results.movetoNext()) {
                final Contact simContact = new Contact(
                        results.getString(results.getColumnIndex(android.provider.BaseColumns._ID)),results.getString(results.getColumnIndex(Contacts.PeopleColumns.NAME)),results.getString(results.getColumnIndex(Contacts.PhonesColumns.NUMBER))
                );
                simContacts.add(simContact);
            }
        }
        results.close();
    }
    return simContacts;
}
项目:Travel-Mate    文件ShareContact.java   
private void addContact(String name,String phone) {
    ContentValues values = new ContentValues();
    values.put(Contacts.People.NUMBER,phone);
    values.put(Contacts.People.TYPE,ContactsContract.CommonDataKinds.Phone.TYPE_CUSTOM);
    values.put(Contacts.People.LABEL,name);
    values.put(Contacts.People.NAME,name);
    Uri dataUri = getContentResolver().insert(Contacts.People.CONTENT_URI,values);
    Uri updateUri = Uri.withAppendedpath(dataUri,Contacts.People.Phones.CONTENT_DIRECTORY);
    values.clear();
    values.put(Contacts.People.Phones.TYPE,Contacts.People.TYPE_MOBILE);
    values.put(Contacts.People.NUMBER,phone);
    updateUri = getContentResolver().insert(updateUri,values);
}
项目:LibreTasks    文件PhoneNumberViewItem.java   
/**
 * {@inheritDoc}
 */
public View buildUI(DataType initData) {
  if (initData != null) {
    editText.setText(initData.getValue());
  }

  ContentResolver cr = activity.getContentResolver();
  List<String> contacts = new ArrayList<String>();
  // Form an array specifying which columns to return.
  String[] projection = new String[] {People.NAME,People.NUMBER };
  // Get the base URI for the People table in the Contacts content provider.
  Uri contactsUri = People.CONTENT_URI;
  // Make the query.
  Cursor cursor = cr.query(contactsUri,// Which columns to return
      null,// Which rows to return (all rows)
      null,// Selection arguments (none)
      Contacts.People.DEFAULT_SORT_ORDER);
  if (cursor.movetoFirst()) {
    String name;
    String phoneNumber;
    int nameColumn = cursor.getColumnIndex(People.NAME);
    int phoneColumn = cursor.getColumnIndex(People.NUMBER);
    do {
      // Get the field values of contacts
      name = cursor.getString(nameColumn);
      phoneNumber = cursor.getString(phoneColumn);
      contacts.add(name + ": " + phoneNumber);
    } while (cursor.movetoNext());
  }
  cursor.close();

  String[] contactsstr = new String[]{};
  ArrayAdapter<String> adapter = new ArrayAdapter<String>(activity,android.R.layout.simple_dropdown_item_1line,contacts.toArray(contactsstr));

  editText.setAdapter(adapter);
  editText.setThreshold(1);
  return(editText);
}
项目:LemonUtils    文件IntentUtils.java   
/**
 * Pick contact only from contacts with telephone numbers
 */
public static Intent pickContactWithPhone() {
    Intent intent;
    if (isSupportsContactsV2()) {
        intent = pickContact(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
    } else { // pre Eclair,use old contacts API
        intent = pickContact(Contacts.Phones.CONTENT_TYPE);
    }
    return intent;
}
项目:Truetone    文件ChooseContactActivity.java   
private Uri getContactContentUri() {
        if (isEclairOrLater()) {
//            ContactsContract.Contacts.CONTENT_URI
            return Uri.parse("content://com.android.contacts/contacts");
        } else {
            return Contacts.People.CONTENT_URI;
        }
    }
项目:android-52Kit    文件IntentUtils.java   
/**
 * Pick contact from phone book
 *
 * @param scope You can restrict selection by passing required content type.
 */
public static Intent pickContact(String scope) {
    Intent intent;
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ECLAIR) {
        intent = new Intent(Intent.ACTION_PICK,Contacts.People.CONTENT_URI);
    } else {
        intent = new Intent(Intent.ACTION_PICK,Uri.parse("content://com.android.contacts/contacts"));
    }

    if (!TextUtils.isEmpty(scope)) {
        intent.setType(scope);
    }
    return intent;
}
项目:alternate-java-bridge-library    文件ContactPicker.java   
protected String getEmailAddress(String emailId) {
  int id;
  try {
    id = Integer.parseInt(emailId);
  } catch (NumberFormatException e) {
    return "";
  }

  String data = "";
  String where = "contact_methods._id = " + id;
  String[] projection = {
    Contacts.ContactMethods.DATA
  };
  Cursor cursor = activityContext.getContentResolver().query(
      Contacts.ContactMethods.CONTENT_EMAIL_URI,we'll leave it in just to be extra careful
  return ensureNotNull(data);
}
项目:alternate-java-bridge-library    文件MediaUtil.java   
private static InputStream openMedia(Form form,MediaSource mediaSource)
    throws IOException {
  switch (mediaSource) {
    case ASSET:
      return form.getAssets().open(mediaPath);

    case REPL_ASSET:
      return new FileInputStream(replAssetPath(mediaPath));

    case SDCARD:
      return new FileInputStream(mediaPath);

    case FILE_URL:
    case URL:
      return new URL(mediaPath).openStream();

    case CONTENT_URI:
      return form.getContentResolver().openInputStream(Uri.parse(mediaPath));

    case CONTACT_URI:
      // Open the photo for the contact.
      InputStream is = Contacts.People.openContactPhotoInputStream(form.getContentResolver(),Uri.parse(mediaPath));
      if (is != null) {
        return is;
      }
      // There's no photo for the contact.
      throw new IOException("Unable to open contact photo " + mediaPath + ".");
  }
  throw new IOException("Unable to open media " + mediaPath + ".");
}
项目:alternate-java-bridge-library    文件MediaUtil.java   
private static InputStream openMedia(FormService formservice,MediaSource mediaSource)
  throws IOException {
switch (mediaSource) {
  case ASSET:
    return formservice.getAssets().open(mediaPath);

  case REPL_ASSET:
    return new FileInputStream(replAssetPath(mediaPath));

  case SDCARD:
    return new FileInputStream(mediaPath);

  case FILE_URL:
  case URL:
    return new URL(mediaPath).openStream();

  case CONTENT_URI:
    return formservice.getContentResolver().openInputStream(Uri.parse(mediaPath));

  case CONTACT_URI:
    // Open the photo for the contact.
    InputStream is = Contacts.People.openContactPhotoInputStream(formservice.getContentResolver(),Uri.parse(mediaPath));
    if (is != null) {
      return is;
    }
    // There's no photo for the contact.
    throw new IOException("Unable to open contact photo " + mediaPath + ".");
}
throw new IOException("Unable to open media " + mediaPath + ".");
}
项目:alternate-java-bridge-library    文件MediaUtilsvc.java   
private static InputStream openMedia(FormService formservice,MediaSource mediaSource)
    throws IOException {
  switch (mediaSource) {
    case ASSET:
      return formservice.getAssets().open(mediaPath);

    case REPL_ASSET:
      return new FileInputStream(replAssetPath(mediaPath));

    case SDCARD:
      return new FileInputStream(mediaPath);

    case FILE_URL:
    case URL:
      return new URL(mediaPath).openStream();

    case CONTENT_URI:
      return formservice.getContentResolver().openInputStream(Uri.parse(mediaPath));

    case CONTACT_URI:
      // Open the photo for the contact.
      InputStream is = Contacts.People.openContactPhotoInputStream(formservice.getContentResolver(),Uri.parse(mediaPath));
      if (is != null) {
        return is;
      }
      // There's no photo for the contact.
      throw new IOException("Unable to open contact photo " + mediaPath + ".");
  }
  throw new IOException("Unable to open media " + mediaPath + ".");
}
项目:alternate-java-bridge-library    文件ContactPicker2.java   
protected String getEmailAddress(String emailId) {
  int id;
  try {
    id = Integer.parseInt(emailId);
  } catch (NumberFormatException e) {
    return "";
  }

  String data = "";
  String where = "contact_methods._id = " + id;
  String[] projection = {
    Contacts.ContactMethods.DATA
  };
  Cursor cursor = activityContext.getContentResolver().query(
      Contacts.ContactMethods.CONTENT_EMAIL_URI,we'll leave it in just to be extra careful
  return ensureNotNull(data);
}
项目:codenameone    文件AndroidContactsManager.java   
public static InputStream loadContactPhoto(ContentResolver cr,long id,long photo_id) {

        Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,id);
        InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr,uri);
        if (input != null) {
            return input;
        }

        byte[] photoBytes = null;

        Uri photoUri = ContentUris.withAppendedId(ContactsContract.Data.CONTENT_URI,photo_id);

        Cursor c = cr.query(photoUri,new String[]{ContactsContract.CommonDataKinds.Photo.PHOTO},null);

        try {
            if (c.movetoFirst()) {
                photoBytes = c.getBlob(0);
            }

        } catch (Exception e) {
            // Todo: handle exception
            e.printstacktrace();

        } finally {
            c.close();
        }

        if (photoBytes != null) {
            return new ByteArrayInputStream(photoBytes);
        }

        return null;
    }
项目:cn1    文件AndroidContactsManager.java   
public static InputStream loadContactPhoto(ContentResolver cr,null);

        try {
            if (c.movetoFirst()) {
                photoBytes = c.getBlob(0);
            }

        } catch (Exception e) {
            // Todo: handle exception
            e.printstacktrace();

        } finally {
            c.close();
        }

        if (photoBytes != null) {
            return new ByteArrayInputStream(photoBytes);
        }

        return null;
    }
项目:flingtap-done    文件LocationUtil.java   
/**
 * Checks whether the contact refered to by the URI contains any postal contact methods.
 *    Postal contact methods usually can be geocoded and thus can be used for proximity alerts.
 *    
 * @param uri A android.provider.Contacts.People.CONTENT_URI with id.
 * @return
 */
protected static boolean doesContactUriContainLocationInfoSDK3(Context ctx,Uri uri) throws RuntimeException {

    Long personId = ContentUris.parseId(uri);
    if( personId < 0 ){
        // Whoops,bad data! Bail.
        Exception exp = (Exception)(new Exception("URI missing id.").fillInStackTrace());
        Log.e(TAG,"ERR0003F URI missing id.");
        ErrorUtil.handleExceptionNotifyUserAndThrow("ERR0003F",exp,ctx);
    }

    // ******************************************************
    // Find the postal address that the user wants to use
    // ******************************************************

    // Get a list of the postal addresses
    Cursor mContactMethodPostalCursor = ctx.getContentResolver().query(ContactMethods.CONTENT_URI,ContactMethodProjectionGps.CONTACT_METHODS_PROJECTION,ContactMethods.PERSON_ID+"=? AND "+ContactMethodsColumns.KIND+"=?",new String[]{personId.toString(),String.valueOf(Contacts.KIND_POSTAL)},null); 
    int count = mContactMethodPostalCursor.getCount();
    mContactMethodPostalCursor.close();

    // Zero postal addresses
    if( count < 1){ 
        // No postal addresses exist,so no GPS locations can exist,right? 
        return false;           
    }
    return true;
}
项目:flingtap-done    文件ContactLocationOverlayItemsPart.java   
private void resolveForPerson(ArrayList<OverlayItem> overlayItems) {
    personId = ContentUris.parseId(itr.next());
    if( personId < 0 ){
        // Whoops,bad data! Bail.
        Exception exp = (Exception)(new Exception("Missing or incomplete Contacts.People.CONTENT_URI.").fillInStackTrace());
        Log.e(TAG,"ERR0001H",exp);
        ErrorUtil.handleExceptionNotifyUserAndThrow("ERR0001H",mContext);
    }

    // ******************************************************
    // Find the postal address that the user wants to use
    // ******************************************************

    // Get a list of the postal addresses
    mContactMethodPostalCursor = mContext.getContentResolver().query(ContactMethods.CONTENT_URI,// Todo: This won't work for Androic 2.x and above phones. 
            ContactMethods.PERSON_ID+"=? AND "+ContactMethodsColumns.KIND+"=?",null); 
    if(mContactMethodPostalCursor.movetoNext()){
        Uri postalContactMethodUri = ContentUris.withAppendedId(ContactMethods.CONTENT_URI,mContactMethodPostalCursor.getInt(ContactMethodProjectionGps.CONTACT_M_ID_INDEX));
        mContactData = mContactMethodPostalCursor.getString(ContactMethodProjectionGps.CONTACT_M_DATA_INDEX);
        mGeocodeAddresspart.resolveAddressposition(mContactData,postalContactMethodUri,this);
    }else{
        mContactMethodPostalCursor.close();
        personId = -1l;
        if(itr.hasNext()){
            resolveForPerson(overlayItems);
        }else{
            mListener.onOverlayItemsResolved(overlayItems);
        }           
    }
}
项目:flingtap-done    文件SelectPostalContactMethodActivity.java   
protected Uri constructreturnData(Long personId,Long contactMethodId){
    Builder builder = ContentUris.appendId(Contacts.People.CONTENT_URI.buildUpon(),personId);
    builder.appendpath(Contacts.People.ContactMethods.CONTENT_DIRECTORY);
    builder.appendpath(contactMethodId.toString());
    Uri returnData = builder.build();
    return returnData;
}
项目:android-intents    文件PhoneIntents.java   
/**
 * Pick contact only from contacts with telephone numbers
 */
@SuppressWarnings("deprecation")
public static Intent newPickContactWithPhoneIntent() {
    Intent intent;
    if (isContacts2ApiSupported()) {
        intent = newPickContactIntent(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE);
    } else {
        // pre Eclair,use old contacts API
        intent = newPickContactIntent(Contacts.Phones.CONTENT_TYPE);
    }
    return intent;
}
项目:RHome    文件SmsPopupUtils.java   
/**
 * Looks up a contacts display name by contact id - if not found,the
 * address (phone number) will be formatted and returned instead.
 */
public static String getPersonName(Context context,String id,String address) {
    if (id == null) {
        if (address != null) {
            // Log.v("Contact not found,formatting number");
            return PhoneNumberUtils.formatNumber(address);
        } else {
            return null;
        }
    }

    Cursor cursor = context.getContentResolver().query(Uri.withAppendedpath(Contacts.People.CONTENT_URI,id),new String[] { PeopleColumns.disPLAY_NAME },null);
    if (cursor != null) {
        try {
            if (cursor.getCount() > 0) {
                cursor.movetoFirst();
                String name = cursor.getString(0);
                // Log.v("Contact display Name: " + name);
                return name;
            }
        } finally {
            cursor.close();
        }
    }

    if (address != null) {
        // Log.v("Contact not found,formatting number");
        return PhoneNumberUtils.formatNumber(address);
    }
    return null;
}
项目:RHome    文件SmsPopupUtils.java   
/**
 * Looks up a contats photo by their contact id,returns a byte array that
 * represents their photo (or null if not found)
 */
public static byte[] getPersonPhoto(Context context,String id) {
    if (id == null)
        return null;

    if ("0".equals(id))
        return null;

    byte photo[] = null;

    // Todo: switch to API method:
    // Contacts.People.loadContactPhoto(arg0,arg1,arg2,arg3)

    Cursor cursor = context.getContentResolver().query(Uri.withAppendedpath(Contacts.Photos.CONTENT_URI,new String[] { PhotosColumns.DATA },null);
    if (cursor != null) {
        try {
            if (cursor.getCount() > 0) {
                cursor.movetoFirst();
                photo = cursor.getBlob(0);
                if (photo != null) {
                    return photo;
                }
            }
        } finally {
            cursor.close();
        }
    }
    return photo;
}

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