Visualizzazione stampabile
-
Come mai devi usare questo: <data android:mimeType="vnd.android.cursor.dir/data"></data> ?
Nel listato che hai postato non hai messo nulla di deprecato.
Io nel programma che avevo fatto non scrivevo nel content provider dei contatti, ma li leggevo e basta (Ho scritto sul content degli SMS).
Come URI usavo quello dato da Contacts.CONTENT_URI
codice:
final Cursor c = getContentResolver().query(Contacts.CONTENT_URI, null,
null, null, ContactsContract.Contacts.DISPLAY_NAME);
startManagingCursor(c);
o da Data.CONTENT_URI
codice:
String[] proiezione = new String[] {
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.Phone.TYPE };
String where = ContactsContract.Data.CONTACT_ID + " = " + position
+ " AND " + ContactsContract.Data.MIMETYPE + " = \""
+ ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE
+ "\"";
final Cursor cur = getContentResolver().query(Data.CONTENT_URI,
proiezione, where, null, null);
startManagingCursor(cur);
ArrayList<String> tipo = new ArrayList<String>();
ArrayList<String> numTel = new ArrayList<String>();
ArrayList<Integer> indTipo = new ArrayList<Integer>();
if (cur.moveToFirst()) {
do {
tipoNumTemp = cur
.getString(cur
.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.TYPE));
numTemp = cur
.getString(cur
.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER));
if (numTemp != null && !numTemp.contentEquals("")) {
numTel.add(numTemp);
indTipo.add(Integer.parseInt(tipoNumTemp));
tipoNumTemp = risorse.getStringArray(R.array.tipo_numero)[Integer
.parseInt(tipoNumTemp) - 1];
tipo.add(tipoNumTemp);
}
} while (cur.moveToNext());
}
Prova a studiarti come ho usato i vari metodi ed applicarli al tuo caso.
E auguri!! :cool:
-
Si infatti quel MimeType non serve a nulla...ora studio i metodi e vediamo che ne esce fuori. Grazie!!
-
Quote:
Originariamente inviato da
mimmog
Si infatti quel MimeType non serve a nulla...ora studio i metodi e vediamo che ne esce fuori. Grazie!!
Ah beh, se posso toglierlo allora torno a lavorarci anch'io :cool:
-
Si si può togliere perchè il MimeType serve per un altra cosa non c'entra in questo caso ;)
-
Ok ragazzi ci nuovi sviluppi ora sono in macchina appena ho un pc sottomano vi dico.. :-)
-
Eccomi qui ! allora ho fatto delle prove di lettura così come consigliato da Deadly e funziona tutto perfettamente. Per la scrittura riscontravo gli stessi ed identici errori di eccezione quindi ho dovuto fare vari tentativi fino ad arrivare a questo codice :
Quote:
ContentValues values = new ContentValues();
values.put(Data.RAW_CONTACT_ID, "1");
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, "1-800-GOOG-411");
values.put(Phone.TYPE, Phone.TYPE_CUSTOM);
values.put(Phone.LABEL, "free directory assistance");
Uri dataUri = getContentResolver().insert(Data.CONTENT_URI, values);
che non permette quello che vorrei fare io, cioè inserire un nuovo contatto in rubrica, bensì permette di aggiungere un nuovo numero di telefono ad un contatto già presente in rubrica ed identificato come vedete dal campo Data.RAW_CONTACT_ID ora mi resta da capire invece come far creare un contatto exnovo passandogli nome, cognome, etc
Vi tengo aggiornati ed intato se qualcuno di buon cuore vuole aiutarmi ben venga ! ;)
-
Quote:
Originariamente inviato da
mimmog
Vi tengo aggiornati ed intato se qualcuno di buon cuore vuole aiutarmi ben venga ! ;)
A me pare che nel libro su Android che ho casa ci sta un esempio per aggiungere un contatto, devo controllare, non vorrei sbagliarmi, stasera guardo e ti faccio sapere ;)
-
-
Eccomi!
Ecco l'esempio preso dal mio libro (per la cronaca si intitola "Android Wireless Application Development" della Addison Wesley, non è proprio il massimo visto che parla di tutto ma senza approfondire mai in modo soddisfacente niente, però per iniziare mi è stato utile):
Spero di non aver sbagliato a trascrivere niente. Questo codice io non l'ho provato, facci sapere se funziona!
Ah, bisogna anche aggiungere al manifest il permesso WRITE_CONTACTS se non l'hai già fatto!
-
Ciao Orochi purtroppo la classe Contacts.Phones è deprecata Contacts.Phones | Android Developers ora di tutto ciò che riguarda i contatti se ne occupa la classe ContactsContract. Oggi l'ho studiata un pochino e devo dire che hanno complicato le cose rispetto a prima, sono riuscito però a recuperare un codice che utilizza questa classe per fare varie cose sui contatti quindi credo che adattandola dovrebbe farmi raggiungere l'obiettivo, stasera me la guardo e poi se funziona posto il codice. Grazie!