telefono solo samsung prime poner pantalla numero mostrar llamadas inicio emergencia desbloquear contactos contacto con como celular bloquear agregar android

solo - ¿Cómo llamar a la lista de contactos de Android Y seleccionar un número de teléfono de su pantalla de detalles?



como poner un contacto en la pantalla de inicio samsung j7 prime (5)

Few, me tomó algo de tiempo, pero creo que tengo la respuesta que necesitas (aunque ya sea demasiado tarde, pero la publicaré como una referencia para otros).

en la aplicación que estoy desarrollando actualmente, el usuario puede ingresar un número de teléfono en un texto de EditText o hacer clic en un botón y seleccionar una persona de la libreta de direcciones del teléfono. Si la persona tiene más de un número de teléfono, hay una lista desplegable donde puede seleccionar exactamente uno de ellos.

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.contact_picker); // this opens the activity. note the Intent.ACTION_GET_CONTENT // and the intent.setType ((Button)findViewById(R.id.pick_person)).setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { // user BoD suggests using Intent.ACTION_PICK instead of .ACTION_GET_CONTENT to avoid the chooser Intent intent = new Intent(Intent.ACTION_GET_CONTENT); // BoD con''t: CONTENT_TYPE instead of CONTENT_ITEM_TYPE intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); startActivityForResult(intent, 1); } }); }

ahora, tan pronto como el usuario selecciona un contacto (y probablemente elige uno de varios números de teléfono), puede recuperar los datos de la forma habitual:

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (data != null) { Uri uri = data.getData(); if (uri != null) { Cursor c = null; try { c = getContentResolver().query(uri, new String[]{ ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.TYPE }, null, null, null); if (c != null && c.moveToFirst()) { String number = c.getString(0); int type = c.getInt(1); showSelectedNumber(type, number); } } finally { if (c != null) { c.close(); } } } } } public void showSelectedNumber(int type, String number) { Toast.makeText(this, type + ": " + number, Toast.LENGTH_LONG).show(); }

Aquí está la documentación para CommonDataKinds.Phone para en dev.android .

el "tipo" de int le indica el tipo de número: móvil (2), casa (1), trabajo (3), etc.

nota: después de que el usuario selecciona el contacto, obtiene un número de números que no indica el tipo de números. no es realmente fácil de usar: si un contacto tiene 5 números asignados ... ¿cuál de estos es el número de fax nuevamente?

otra nota: el ejemplo anterior necesita el sdk> 5 (Android 2.0+), así que no 1.6 (= sdk 4). 1.6 tiene una API diferente, y si quieres admitir ambas versiones, lee el artículo sobre la API de contactos en dev.android .

buena suerte.

descargo de responsabilidad: copié la mayor parte de mi código del ejemplo PickContact.java

He leído las soluciones ya publicadas, pero no me dicen cómo usar la pantalla de detalles de contacto del sistema para seleccionar UN número para usar. Estoy desarrollando una aplicación para Android de envío de SMS que ofrece elegir los contactos del teléfono y el número que un usuario desea usar para enviar a ...

Hasta ahora no he podido encontrar nada sobre la elección de un número. ¿Solo tiene que hacerse programáticamente? ¿Recuperando todos los números de la base de datos y enviándoles sms?

Saludos

Jerez


Hay un problema en la respuesta aceptada. Si el número seleccionado contiene espacios dentro de él.
es decir, 85 29 948789, entonces solo mostrará 85 (hasta el primer espacio).

así que usa el siguiente código para corregir este problema :)

Intent intent1 = new Intent(Intent.ACTION_PICK); intent1.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); startActivityForResult(intent1, 1);

y en onActivityResult

Uri contactUri = data.getData(); String[] projection = {ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME}; Cursor cursor = getContentResolver() .query(contactUri, projection, null, null, null); cursor.moveToFirst(); int numberColumn = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); int nameColumn = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME); String number = cursor.getString(numberColumn); String name = cursor.getString(nameColumn);


PRUEBA ESTO

setContentView(R.layout.main); contactNumber = (TextView)findViewById(R.id.contactnumber); Button buttonPickContact = (Button)findViewById(R.id.pickcontact); buttonPickContact.setOnClickListener(new Button.OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); startActivityForResult(intent, 1); }}); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); if(requestCode == RQS_PICK_CONTACT){ if(resultCode == RESULT_OK){ Uri contactData = data.getData(); Cursor cursor = managedQuery(contactData, null, null, null, null); cursor.moveToFirst(); String number = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER)); //contactName.setText(name); contactNumber.setText(number); //contactEmail.setText(email); } } } }

EDITAR XML

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/pickcontact" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Pick Contact" /> <TextView android:id="@+id/contactnumber" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>


Prueba este código, estoy seguro de que funcionará

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE); startActivityForResult(intent, PICK_CONTACT);


este código solo funciona bien conmigo

@Override public void onClick(View arg0) { // TODO Auto-generated method stub Intent i = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI); super.startActivityForResult(i, 1001); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case 1001: if (resultCode == Activity.RESULT_OK) { Cursor s = getContentResolver().query(Phone.CONTENT_URI, null, null, null, null); if (s.moveToFirst()) { String phoneNum = s.getString(s.getColumnIndex(Phone.NUMBER)); Toast.makeText(getBaseContext(), phoneNum, Toast.LENGTH_LONG).show(); } } break; } }