Autore Topic: Prendere il numero di cellulare da rubrica e non quello di casa  (Letto 807 volte)

Offline AngelMagli

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
0
Salve ragazzi, ho un problema con un'applicazione che sto realizzando, come da titolo vorrei prendere il numero di cellulare dalla rubrica telefonica, utilizzando il seguente codice e selezionando un contatto che ha sia un numero di cellulare che di telefono, mi restituisce o il numero di telefono o quello di cellulare. Come posso ovviare al problema?



Codice (Java): [Seleziona]
  @Override
                           public void onClick(View arg0) {
                            Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
                            startActivityForResult(intent, RQS_PICK_CONTACT);
                           }});}

                         @Override
                         protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                          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);
                               startManagingCursor(cursor);

                               cursor.moveToFirst();
                               ContentResolver cr = getContentResolver();
                               String id = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
                               String number = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.HAS_PHONE_NUMBER));
                                 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()) {
                                                number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                                       }
                                       pCur.close();
                                   }

Spero che possiate aiutarmi.
Distinti Saluti
Angelo

Offline AngelMagli

  • Nuovo arrivato
  • *
  • Post: 18
  • Respect: 0
    • Mostra profilo
Re:Prendere il numero di cellulare da rubrica e non quello di casa
« Risposta #1 il: 05 Marzo 2012, 16:23:36 CET »
0
Salve, a chiunque possa interessare ho risolto in questo modo
Codice (Java): [Seleziona]
 @Override
                         protected void onActivityResult(int requestCode, int resultCode, Intent data) {
                          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);
                               startManagingCursor(cursor);

                               cursor.moveToFirst();
                               ContentResolver cr = getContentResolver();
                               String id = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
                               String number = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.HAS_PHONE_NUMBER));
                                 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()) {
                                               String number1 = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                                               if(number1.startsWith("+393")||number1.startsWith("3"))
                                                 number=number1;
                                     }
                                       pCur.close();
                                   }
                                    String numerocomplet=number.replaceAll("-", "");
                                    String numerocompleto=numerocomplet.replace("+39", "");}}


Saluti
Angelo