2010-11-22 27 views
2

Salut Je blême pour créer un contact, alors voici mon code:Android créer des problèmes de contact

Intent addPersonIntent = new Intent(Intent.ACTION_INSERT_OR_EDIT); 

addPersonIntent.putExtra(Insert.NAME, "asd"); 
addPersonIntent.setType(Contacts.People.NAME); 

addPersonIntent.putExtra(Insert.PHONE_TYPE, Contacts.Phones.TYPE_WORK); 
addPersonIntent.putExtra(Insert.PHONE, Uri.decode("123")); 
addPersonIntent.putExtra(Insert.PHONE_TYPE, Contacts.Phones.TYPE_MOBILE); 
addPersonIntent.putExtra(Insert.PHONE, Uri.decode("123")); 
addPersonIntent.setType(Contacts.Phones.CONTENT_ITEM_TYPE); 

... 

startActivity(addPersonIntent); 

Pourquoi la seule chose qui est créé est le numéro de téléphone mobile, je ne ai jamais eu le nombre « de travail »?

Répondre

2

Vous pensez que "putExtra" s'ajoute à la fin d'un tableau - Votre problème sera plus clair si vous y pensez en définissant des paires nom/valeur dans une table de hachage. Fondamentalement, vous définissez PHONE_TYPE sur "work", PHONE sur 123, PHONE_TYPE sur "mobile" (écrasement quand il est configuré pour fonctionner) et PHONE sur "123" de nouveau.

Qu'est-ce que vous voulez faire est de définir soit les données « mobiles » téléphone ou « travail » à l'aide SECONDARY_PHONE et SECONDARY_PHONE_TYPE - Details here.

De plus, gardez à l'esprit que tout cela fait suite à l'ancienne version de l'API Contacts, qui est obsolète depuis Android 2.0+. Il existe une ressource pratique sur la migration de votre code pour utiliser l'API de nouveaux contacts here.

+0

merci, il fonctionne :) btw mon application doit travailler sur v> = 1.6 – martin

1

est le problème suivant ici, quand j'ajoute:

addPersonIntent.putExtra (Insert.NOTES, "asdkjhaskh");

les données de note n'apparaissent jamais dans l'activité, pourquoi?

L'idée générale est de démarrer le EditContactActivity.java avec des données chargées et pour l'instant j'ai chargé les téléphones, les noms et les entreprises. Pour une raison quelconque, je ne peux pas charger des notes, et un autre problème est de savoir comment définir dans les informations d'intention pour la messagerie instantanée? Par exemple, j'ai essayé avec:

addPersonIntent.putExtra (Insert.IM_HANDLE, "mySkype"); addPersonIntent.putExtra (Insert.IM_PROTOCOL, Uri.decode ("skype"));

mais cela ne fonctionne pas.