Bonjour,
Je n'arrive pas a insérer un contact (nom, prénom,adresse,ville,cp,fixe,portable,mail) dans la base de donnée du téléphone, malgré plusieurs tentatives.
Merci d'avance.
Bonjour,
Je n'arrive pas a insérer un contact (nom, prénom,adresse,ville,cp,fixe,portable,mail) dans la base de donnée du téléphone, malgré plusieurs tentatives.
Merci d'avance.
As-tu géré les permissions de le faire ?
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS
Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android
Oui, j'ai géré les permissions de lecture et écriture dans les contacts.
Donnes nous le code ou les messages d'erreurs/logs, sinon on ne peut rien faire pour toi...
Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS
Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android
Oui bien sur désolé, donc voici le code.
PS: Je n'ai aucun message d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 String nom = etnom.getText().toString().toUpperCase(); String adresse = etadresse.getText().toString(); String ville = etville.getText().toString(); String cp = etcp.getText().toString(); String fixe = etfixe.getText().toString(); String port = etport.getText().toString(); String mail = etmail.getText().toString(); ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) .withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, nom) .build()); ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE) .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, fixe) .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, "Home") .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, port) .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, "Mobile") .build()); ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE) .withValue(ContactsContract.CommonDataKinds.Email.DATA, mail) .withValue(ContactsContract.CommonDataKinds.Email.TYPE, "Home") .build()); try { getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); } catch (Exception e) { // Display warning Toast toast = Toast.makeText(getApplicationContext(), "Erreur", Toast.LENGTH_SHORT); toast.show(); }
Donc a force d'essayer j'ai réussi à insérer un contact, mais lors de l'affichage des informations de celui-ci, le nom,le prénom, et le numéro de téléphone fixe sont vides.
Voici le code d'insertion:
Et voici le code de visualisation des informations:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex) .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) .withValue(StructuredName.DISPLAY_NAME, nom+" "+prenom) .withValue(StructuredName.GIVEN_NAME, prenom) .withValue(StructuredName.FAMILY_NAME, nom) .build()); ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex) .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE) .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, fixe) .withValue(ContactsContract.CommonDataKinds.Phone.TYPE, CommonDataKinds.Phone.TYPE_HOME ) .withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, port) .withValue(ContactsContract.CommonDataKinds.Phone.TYPE,CommonDataKinds.Phone.TYPE_MOBILE ) .build());
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 Cursor c = getContentResolver().query(ContactsContract.Data.CONTENT_URI,null,ContactsContract.Contacts._ID+"=?",new String[]{id},null); if(c.moveToFirst()) { String strnom = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME)); String strpnom = c.getString(c.getColumnIndex(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME)); EditText etnom = (EditText) findViewById(R.id.etnom); etnom.setText(strnom); EditText etpnom = (EditText) findViewById(R.id.etpnom); etpnom.setText(strpnom); } Cursor c2 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=? AND " +ContactsContract.CommonDataKinds.Phone.TYPE+"=?",new String[]{id,Integer.toString(CommonDataKinds.Phone.TYPE_MOBILE)},null); if(c2.moveToFirst()) { String strnum = c2.getString(c2.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); EditText etnum = (EditText) findViewById(R.id.editText7); etnum.setText(strnum); } Cursor c4 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=? AND " +ContactsContract.CommonDataKinds.Phone.TYPE+"=?",new String[]{id,Integer.toString(CommonDataKinds.Phone.TYPE_HOME)},null); if(c4.moveToFirst()) { String strnumf = c4.getString(c4.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); EditText etnumf = (EditText) findViewById(R.id.editText6); etnumf.setText(strnumf); }
donc j'ai réussi a insérer un nouveau contact, sauf que le numéro de téléphone fixe ne s'affiche pas.
Création du numéro de fixe:
Visualisation du numéro de fixe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ops.add(ContentProviderOperation.newInsert (ContactsContract.Data.CONTENT_URI) .withValueBackReference (ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex) .withValue (ContactsContract.CommonDataKinds.Phone.NUMBER, fixe) .withValue (ContactsContract.CommonDataKinds.Phone.TYPE , CommonDataKinds.Phone.TYPE_HOME )
Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Cursor c4 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"=? AND " +ContactsContract.CommonDataKinds.Phone.TYPE+"=?",new String[]{id,Integer.toString(CommonDataKinds.Phone.TYPE_HOME)},null); if(c4.moveToNext()) { String strnumf = c4.getString(c4.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); tvtel.setText(strnumf); }
Partager