2010-07-03 15 views
12

hi im cercando di aggiungere un numero di telefono a un contatto esistente su Android 2.1. Im attualmente in uso:android edit contact

ContentValues values = new ContentValues(); 
values.put(Phone.RAW_CONTACT_ID,cursor.getColumnIndex(Phone.CONTACT_ID)); 
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'"; 
ContentResolver cr = getContentResolver(); 
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI,null, selection, null,ContactsContract.Contacts.DISPLAY_NAME+" COLLATE LOCALIZED ASC"); 
if (cursor.getCount() > 0) { 
    cursor.moveToPosition(oldcontactid); 
    contactid = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
    values.put(Phone.RAW_CONTACT_ID,cursor.getColumnIndex(Phone.CONTACT_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[]{contactid}, null); 
     while (pCur.moveToNext()) { 
      values.put(Phone.NUMBER,pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))); 
      values.put(Phone.TYPE, Phone.TYPE_MOBILE); 
     } 
     pCur.close(); 
    } 
} 
Uri uri = getContentResolver().insert(Phone.CONTENT_URI, values); 

ma ottengo un errore:

java.lang.UnsupportedOperationException: Unknown uri: content://com.android.contacts/data/phones 

Come potrei essere in grado di risolvere questo problema?

Grazie per qualsiasi aiuto, ng93

+0

fa il il codice dà lo stesso errore su un dispositivo reale come emulatore? – sehugg

+0

'Phone' è deprecato per Android 2.1 .... usa' ContactsContract' –

risposta

1

Avete impostare le autorizzazioni corrette nel AndroidManifest.xml? Per quanto ne so, l'accesso alle informazioni personali (contatti) è limitato per impostazione predefinita.

vedere here per di più sul sistema dei permessi in Android

+0

ive set: \t \t ng93

+0

scusa se non ho potuto aiutare ... Spero hai risolto il tuo problema ora facci sapere dove si trovava il problema? – Mark

1

Si potrebbe anche voler controllare le applicazioni installate vs memoria di programma. Il mio Droid Eris ha funzionato bene anche sui contatti e praticamente su qualsiasi applicazione sensibile ai contatti.

Fino al Sono passato oltre qualche punto di carico della memoria. Il supporto VZW al 1 ° livello non mi ha aiutato, ho dovuto insistere sul supporto di 2 ° livello. Finalmente ho avuto una risposta da qualcuno che conosceva i suoi spinaci. Ha detto che avevo troppe app al telefono e che questo era un problema noto.
ancora non tagliare il mio working set giù abbastanza per ottenere il contatto modificare lavorare :-(

/s/BezantSoft

+0

Il mio problema riguardava sia i contatti telefonici che i contatti nel mio account google. Non sono sicuro con l'HTC Eris (Android) 2.1 sulla piena rilevanza del consiglio che VZW mi ha fornito. Ho fatto il protocollo "rimuovi le app" e non mi ha dato un notevole miglioramento delle abilità di "modifica dei contatti". Ovviamente, essendo un utente e sviluppatore FOSS, ho installato e disinstallato un sacco di applicazioni. Questo potrebbe avere qualcosa a che fare con le cose. – BezantSoft

+0

Ieri sera ho eseguito un reset hardware al telefono. Non è stato difficile. Ora ho la modifica dei contatti e manterrò le cose aggiornate qui se i problemi si ripresentano. Tuttavia, le indicazioni sul PDF online (probabilmente v1.5/1.6) non corrispondono al telefono v2.1: – BezantSoft

+0

Manuale: Per ripristinare il telefono 1. Premere HOME> MENU, quindi toccare Impostazioni> Sicurezza> Ripristino dati di fabbrica. ----- Con 2.1, ho trovato: HOME> MENU, quindi IMPOSTAZIONI> PRIVACY> Ripristino dati di fabbrica Quindi viene visualizzata la finestra di dialogo di avviso di ripristino fabbrica. – BezantSoft

3

Inserire nel Data.CONTENT_URI invece di Phone.CONTENT_URI inserire anche la colonna Data.MIMETYPE con Phone.CONTENT_ITEM_TYPE.

Problemi correlati