Sto realizzando una piccola app di messaggi, ma purtroppo ho messo un' edittext per il numero di telefono.... come posso richiamare la rubrica per prende il numero diretto dal contatto?
Sto realizzando una piccola app di messaggi, ma purtroppo ho messo un' edittext per il numero di telefono.... come posso richiamare la rubrica per prende il numero diretto dal contatto?
Ciao,
prova così:
-nel manifest inserisci questo codice
aggiungere in AndroidManifest.xml
<uses-permission android:name="android.permission.READ_CONTACTS"/>
per richiamare la rubrica
Intent intentContact = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intentContact, PICK_CONTACT);
nell' activity vai a sovrascrivere il metodo onActivityResult
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
if (requestCode == PICK_CONTACT)
{
Cursor cursor = managedQuery(intent.getData(), null, null, null, null);
cursor.moveToNext();
String contactId = cursor.getString(cursor.getColumnIndex(ContactsCon tract.Contacts._ID));
String name = cursor.getString(cursor.getColumnIndexOrThrow(Cont actsContract.Contacts.DISPLAY_NAME));
Toast.makeText(this, "Contect LIST = "+name, Toast.LENGTH_LONG).show();
}
}
Così dovrebbe bastare.Poi ovviamente dipende cosa vuoi selezionare...se solo il nome o altro....cambi a seconda della tua necessità
Ultima modifica di canaja; 15-05-12 alle 22:13
Nex94 (27-05-12)
Grazie appena possibile lo provo
Inviato dal mio Galaxy SII
Scusa ma non son un grande esperto, se volessi associarla ad un bottone devo mettere lo start activity nel onClick presumo, ma il mio eclipse non riconosce PICK_CONTACT e public void onActivityResult
Why?
Noltre una volta preso ad esempio il numero clickando su un bottone, messo accanto ad un'editText, posso mettere sull'editText il numero, visibile all'utente?
Ultima modifica di Nex94; 16-05-12 alle 22:04
Ho provato in tutti i modi, ma come posso fare a salvarmi il numero di telefono? Non c'e l'oggetto NUMBvER_PHONE...
help
Inviato dal mio Galaxy SII
Up
Inviato dal mio Galaxy SII
Risolto grazie ad internet e il pezzo precedentemente suggerito:
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == PICK_CONTACT){
if(resultCode == RESULT_OK){
Uri contactData = data.getData();
Cursor cursor = managedQuery(contactData, null, null, null, null);
startManagingCursor(cursor);
cursor.moveToFirst();
ContentResolver cr = getContentResolver();
String id = cursor.getString(cursor.getColumnIndexOrThrow(Cont actsContract.Contacts._ID));
String number = cursor.getString(cursor.getColumnIndexOrThrow(Cont actsContract.Contacts.HAS_PHONE_NUMBER));
if (Integer.parseInt(cursor.getString(cursor.getColum nIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER) )) > 0)
{ Cursor pCur = cr.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI ,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "= ?",
new String[]{id}, null);
while (pCur.moveToNext())
{ String number1 = pCur.getString(pCur.getColumnIndex(ContactsContrac t.CommonDataKinds.Phone.NUMBER));
if(number1.startsWith("+393")||number1.startsWith( "3"))number=number1;
}
pCur.close();
}
else{Toast.makeText(getBaseContext(), "No number",Toast.LENGTH_SHORT).show();return;}
String numerocomplet = number.replaceAll("-", "");
phoneNo = numerocomplet.replace("+39", "");
Toast.makeText(getBaseContext(), "Salvato: "+phoneNo,Toast.LENGTH_SHORT).show();
}}
}