2010-08-11 4 views
1

Je souhaite utiliser l'activité Contact interne pour créer un nouveau contact. Voici le code:Comment définir correctement une intention android avec l'action SHOW_OR_CREATE_CONTACT?

 Intent i = new Intent(); 
    i.setAction(ContactsContract.Intents.SHOW_OR_CREATE_CONTACT); 
    i.addCategory(Intent.CATEGORY_DEFAULT); 
    i.setData(Uri.fromParts("tel", "12345678", null)); 
    i.putExtra(ContactsContract.Intents.EXTRA_FORCE_CREATE, true); 
    i.putExtra(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK); 
    i.putExtra(ContactsContract.Intents.Insert.EMAIL, "[email protected]"); 
    i.putExtra(ContactsContract.CommonDataKinds.Email.TYPE, ContactsContract.CommonDataKinds.Email.TYPE_WORK); 
    i.putExtra(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, "Ide"); 
    i.putExtra(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, "Vele"); 
    i.putExtra(ContactsContract.CommonDataKinds.Organization.COMPANY, "Company name"); 
    i.putExtra(ContactsContract.CommonDataKinds.Organization.TYPE, ContactsContract.CommonDataKinds.Organization.TYPE_WORK); 
    i.putExtra(ContactsContract.CommonDataKinds.Organization.LABEL, "label"); 
    i.putExtra(ContactsContract.CommonDataKinds.Organization.TITLE, "job title"); 
    i.putExtra(ContactsContract.CommonDataKinds.Organization.DEPARTMENT, "department"); 
    i.putExtra(ContactsContract.CommonDataKinds.Organization.JOB_DESCRIPTION, "job description"); 
    i.putExtra(ContactsContract.CommonDataKinds.Organization.SYMBOL, "symbol"); 
    i.putExtra(ContactsContract.CommonDataKinds.Organization.OFFICE_LOCATION, "office location"); 

Mais ce code ne fonctionne que partiellement. Seul le numéro de téléphone et l'adresse e-mail sont visibles dans l'activité, les autres champs ne sont pas renseignés.

Voici la capture d'écran de l'émulateur: edit_contact1

Désolé de ne pas inclure, mais je n'ai pas assez réputation d'inclure des images.

Toute aide serait grandement appréciée!

Certains mise à jour: le code suivant définit le champ « Prénom »:

i.putExtra(ContactsContract.Intents.Insert.NAME, "simple name"); 

Répondre

1

j'imagine que seules les clés constantes dans ContactsContract.Intents.Insert * sont compris par le récepteur intention.. Cela aurait du sens.

Questions connexes