web-dev-qa-db-fra.com

Comment obtenir une vCard (fichier .vcf) dans Android contacts à partir du site Web

J'essaie d'ajouter une vCard à partir d'un lien Web à la liste de contacts de l'utilisateur sur Android 2.2. Lorsque je dirige l'utilisateur vers le fichier .vcf, tout ce que j'obtiens est la sortie de texte dans le navigateur mobile . J'ai confirmé que les fichiers sont en cours de transfert avec du texte/carte V de type MIME. Cela semble être assez simple à faire. Des idées?

13
ARolek

AFAIK Android ne prend pas en charge les fichiers vCard hors de la boîte au moins jusqu'à la version 2.2.

Vous pouvez utiliser l'application vCardIO pour lire les fichiers vcf de votre carte SD et enregistrer vos contacts. Vous devez donc les enregistrer sur votre carte SD en premier lieu et les importer ensuite.

vCardIO est également disponible sur le marché.

5
Bernd

Il y a maintenant une fonctionnalité d'importation sur Android ICS 4.0.4.

Vous devez d'abord enregistrer votre .vcf fichier sur un stockage (stockage USB ou carte SD). Android analysera le stockage sélectionné pour détecter tout .vcf fichier et l'importera dans le carnet d'adresses sélectionné. La fonctionnalité se trouve dans le menu d'options de votre liste de contacts.

! Remarque: Soyez prudent en faisant cela! Android importera TOUT qui est un .vcf dans votre espace de stockage. C'est tout ou rien, et la conséquence peut être de saccager votre carnet d'adresses.

4
yecundha

Juste pour vous faire savoir: je viens de l'essayer en utilisant un fichier vCard 2.1 créé selon la spécification vCard 2.1 . J'ai trouvé que la vCard 2.1, bien qu'elle soit une ancienne version, couvrait déjà tout ce dont j'avais besoin, y compris une photo encodée en base64 et des jeux de caractères internationaux.

Il fonctionnait parfaitement sur mon appareil non modifié Android 4.1.1 (Galaxy S3). Il fonctionnait également sur un ancien iPhone 3GS (iOS 5, via application Evernote ) et un ancien collègue non modifié d'un collègue Android 2.1 appareil. Il vous suffit de définir le Content-disposition à attachment comme suggéré ci-dessus.

Un problème mineur est que j'ai déclenché le téléchargement du VCF à l'aide d'un QR code , que j'ai scanné avec Microsoft Tag app . Cette application m'a dit Android ne pouvait pas gérer le text/x-vcard type de support (ou simplement text/vcard, peu importe). Une fois que j'ai ouvert le lien dans un navigateur Web (j'ai essayé Chrome et le navigateur Android navigateur par défaut), cela a bien fonctionné.

4
barfuin

Cela peut être utilisé pour télécharger le fichier sur votre carte SD Testé avec Android version 2.3.3 et 4.0.3

======= php =========================

<?php
     // this php file (example saved as name is vCardDL.php) is placed in my html subdirectory
     //  
     header('Content-Type: application/octet-stream');
     // the above line is needed or else the .vcf file will be downloaded as a .htm file
     header('Content-disposition: attachment; filename="xxxxxxxxxx.vcf"');
     // 
     //header('Content-type: application/vcf'); remove this so Android doesn't complain that it does not have a valid application
     readfile('../aaa/bbb/xxxxxxxxxx.vcf');
     //The above is the parth to where the file is located - if in same directory as the php, then just the file name
?>

======= html ========================

<FONT COLOR="#CC0033"><a href="vCardDL.php">Download vCARD</A></FONT>
3
Jackal

J'ai rencontré des problèmes lors de l'importation d'un VERSION:4.0 fichier vcard sur Android 7 (LineageOS) avec l'application Contacts standard.

Étant donné que c'est sur les premiers résultats de recherche pour "format vcard Android non pris en charge", je voulais juste noter que j'ai pu les importer avec les Contacts simples app ( Play ou F-Droid ).

2
grandchild

J'utilise 2.2 et il n'y a aucun changement, les rapports des autres sur 2.3 disent la même chose. Android (bug) ne gère pas un .vcf ni un lien vers un tel fichier sur une page Web via le port 80, ni via les en-têtes http ou le streaming direct. Il n'est tout simplement PAS PRIS EN CHARGE AT TOUS.

2
Jeroen Steeman

Ce que j'ai également remarqué, c'est que vous devez enregistrer le fichier sous Unicode, UTF-8, non BOM au format Windows avec CRLF (retour chariot, saut de ligne). Parce que si vous ne le faites pas, l'importation sera interrompue. (Dire quelque chose sur les caractères étranges dans le fichier)

Bonne chance :) Sid

1
Sidney de Koning