Autore Topic: Numero di telefono contatto da nome  (Letto 900 volte)

Offline cdr89

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
Numero di telefono contatto da nome
« il: 12 Marzo 2012, 12:26:38 CET »
0
Ciao a tutti!
Utilizzo il seguente codice per (tentare di) ricavare il numero di telefono da un nome in rubrica.
Quando faccio una prova e do come argomento al metodo un numero sicuramente esistente in rubrica, questo restituisce lo stesso nome anzichè il numero corrispondente!!!
I permessi sono correttamente settati, infatti l'operazione inversa (da numero a nome) riesco a farla tranquillamente.
Qualche idea? Dove sbaglio?
Se può essere d'aiuto il nome utilizzato nel test è "Mio wind".
Grazie.

Codice (Java): [Seleziona]
private String numberFromName(String name){//TODO
           String number = null;
           Cursor cursor = getContentResolver().query(ContactsContract.Data.CONTENT_URI,
                          new String[] {Phone.NUMBER},
                          Phone.DISPLAY_NAME + "='" + name+ "'",
                          null , null);
           try {
               cursor.moveToFirst();
               number = cursor.getString(0);
           } finally {
               cursor.close();
           }
           return number;
   }

Offline liuk78

  • Utente junior
  • **
  • Post: 73
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Numero di telefono contatto da nome
« Risposta #1 il: 12 Marzo 2012, 17:41:39 CET »
0
io ho provato il tuo codice e sembra funzionare, unico appunto è che per come hai scritto il metodo ti torna sempre e solo il primo numero del contatto

Offline cdr89

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
Re:Numero di telefono contatto da nome
« Risposta #2 il: 13 Marzo 2012, 12:41:19 CET »
0
Grazie di averlo provato.
Mi sa che devo fare qualche altro test allora. Il fatto che ritorni solo il primo numero del contatto non ha importanza per l'applicazione, anche se sarebbe curioso sapere come restituirli tutti.

Offline liuk78

  • Utente junior
  • **
  • Post: 73
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Numero di telefono contatto da nome
« Risposta #3 il: 15 Marzo 2012, 10:07:21 CET »
0
Grazie di averlo provato.
Mi sa che devo fare qualche altro test allora. Il fatto che ritorni solo il primo numero del contatto non ha importanza per l'applicazione, anche se sarebbe curioso sapere come restituirli tutti.

una cosa del genere....

Codice (Java): [Seleziona]
         
ContentResolver cr = getContentResolver();
                        if (cursor.moveToFirst())
                                {                
                                        String id = cursor.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
                                       
                                        if (Integer.parseInt(cursor.getString(cursor.getColumnIndex(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()) {
                                        //ciclo per tutti le occorrenze di un contatto                         
}
                                pCur.close();
                                    }
                                }