por pasar otro nombre los google contactos como celular borrar alargar agenda abrir android android-contacts

pasar - Seleccione mĂșltiples contactos de la agenda en Android



contactos google (2)

Estoy compartiendo el código para seleccionar varios contactos de la Libreta de teléfonos. Has cambiado poco y puedes lograr tu objetivo. Gracias

getAllContacts(this.getContentResolver()); ListView lv = (ListView) findViewById(R.id.lv); ma = new MyAdapter(); lv.setAdapter(ma); lv.setOnItemClickListener(this); lv.setItemsCanFocus(false); lv.setTextFilterEnabled(true); // adding select = (Button) findViewById(R.id.button1); select.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { StringBuilder checkedcontacts = new StringBuilder(); for (int i = 0; i < name1.size(); i++) { if (ma.mCheckStates.get(i) == true) { checkedcontacts.append(name1.get(i).toString()); checkedcontacts.append("/n"); } else { } } Toast.makeText(Display.this, checkedcontacts, 1000).show(); } }); } @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub ma.toggle(arg2); } public void getAllContacts(ContentResolver cr) { Cursor phones = cr.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); while (phones.moveToNext()) { String name = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); String phoneNumber = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); name1.add(name); phno1.add(phoneNumber); } phones.close(); } class MyAdapter extends BaseAdapter implements CompoundButton.OnCheckedChangeListener { private SparseBooleanArray mCheckStates; LayoutInflater mInflater; TextView tv1, tv; CheckBox cb; MyAdapter() { mCheckStates = new SparseBooleanArray(name1.size()); mInflater = (LayoutInflater) Display.this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { // TODO Auto-generated method stub return name1.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return 0; } @Override public View getView(final int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View vi = convertView; if (convertView == null) vi = mInflater.inflate(R.layout.row, null); tv = (TextView) vi.findViewById(R.id.textView1); tv1 = (TextView) vi.findViewById(R.id.textView2); cb = (CheckBox) vi.findViewById(R.id.checkBox1); tv.setText("Name :" + name1.get(position)); tv1.setText("Phone No :" + phno1.get(position)); cb.setTag(position); cb.setChecked(mCheckStates.get(position, false)); cb.setOnCheckedChangeListener(this); return vi; } public boolean isChecked(int position) { return mCheckStates.get(position, false); } public void setChecked(int position, boolean isChecked) { mCheckStates.put(position, isChecked); } public void toggle(int position) { setChecked(position, !isChecked(position)); } @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub mCheckStates.put((Integer) buttonView.getTag(), isChecked); }

Necesito seleccionar números de contacto / correos electrónicos de la guía telefónica en Android.

He visto seleccionar un contacto y volver a obtener el resultado en onActivityResult desde este enlace .

Pero necesito múltiples contactos para ser seleccionados de la guía telefónica. ¿Cómo lograr esto?

No quiero hacer mi lista personalizada, ¿hay alguna forma de usar androides incorporados en la funcionalidad?


Parece que no hay tal manera "oficial". Su pregunta es básicamente la misma que esta. Cómo seleccionar múltiples contactos con el SDK de Android que tiene referencia a la implementación personalizada .

Si marca la aplicación Contactos de AOSP, no existe tal posibilidad ni en la documentación. Lo único que he observado de la fuente de Contactos de AOSP es la siguiente mención (en com.android.contacts.activities.PeopleActivity ):

// TODO fix or remove multipicker code // else if (resultCode == RESULT_CANCELED && mMode == MODE_PICK_MULTIPLE_PHONES) {

Desde el código fuente de la aplicación MMS puede observar lo siguiente (en ComposeMessageActivity ):

private void launchMultiplePhonePicker() { Intent intent = new Intent(Intents.ACTION_GET_MULTIPLE_PHONES); intent.addCategory("android.intent.category.DEFAULT"); intent.setType(Phone.CONTENT_TYPE); // We have to wait for the constructing complete. ContactList contacts = mRecipientsEditor.constructContactsFromInput(true); int urisCount = 0; Uri[] uris = new Uri[contacts.size()]; urisCount = 0; for (Contact contact : contacts) { if (Contact.CONTACT_METHOD_TYPE_PHONE == contact.getContactMethodType()) { uris[urisCount++] = contact.getPhoneUri(); } } if (urisCount > 0) { intent.putExtra(Intents.EXTRA_PHONE_URIS, uris); } startActivityForResult(intent, REQUEST_CODE_PICK); }

Field Intents.ACTION_GET_MULTIPLE_PHONES está disponible en ContactsContract.java pero no pude encontrar ningún uso en AOSP. Entonces, creo que es un código muerto o que la acción se maneja en un código cerrado. He intentado de la misma manera iniciar la selección de contactos desde mi aplicación de prueba y solo obtuve una excepción sobre ninguna aplicación para manejar la acción.

Por supuesto, las aplicaciones de contactos de los proveedores proporcionan tales habilidades (por ejemplo, al seleccionar los destinatarios de los mensajes), pero es mejor no confiar en ellas.