2010-12-07 18 views
11

Ich versuche, eine vCard aus einem Weblink zur Kontaktliste des Benutzers auf Android 2.2 hinzuzufügen. Wenn ich den Benutzer in die .vcf-Datei leite, bekomme ich nur eine Textausgabe im mobilen Browser. Ich habe bestätigt, dass die Dateien mit dem MIME-Typ text/v-card übertragen werden. Dies scheint so, als ob es ziemlich einfach sein sollte. Irgendwelche Ideen?So erhalten Sie eine vCard (.vcf-Datei) in Android-Kontakte von der Website

Antwort

5

AFAIK Android unterstützt vCard-Dateien nicht out of the Box zumindest nicht bis 2.2.

Sie könnten die App vCardIO verwenden, um VCF-Dateien von Ihrer SD-Karte zu lesen und Kontakte zu speichern. Sie müssen sie also zuerst auf Ihrer SD-Karte speichern und anschließend importieren.

vCardIO ist auch auf dem Markt erhältlich.

+9

Die beste Lösung, die ich gefunden habe, ist, den Download zu erzwingen, indem ich die content-disposition auf attachement setze.vcf-Dateien in einer Apache-Datei httpd.conf oder .htaccess. Der Benutzer muss dann die Datei öffnen und sie werden gefragt, wie sie die Kontaktinformationen in ihre Kontaktliste einfügen möchten. Dieser Thread hat mir sehr geholfen: http://code.google.com/p/android/issues/detail?id=9215 – ARolek

1

Was ich auch bemerkt habe, ist, dass Sie die Datei als Unicode speichern haben, UTF-8, keine BOM in einem Windows-Format mit CRLF (Carriage Return, Line Feed). Wenn nicht, bricht der Import ab. (Sagen etwas über seltsame Zeichen in der Datei)

Viel Glück :) Sid

2

Ich bin mit 2.2 und es gibt keine Veränderung, Berichte von anderen auf 2.3 sagen das gleiche. Android (Bug) behandelt weder eine .vcf-Datei noch einen Link zu einer solchen Datei auf einer Webseite über Port 80, weder über HTTP-Header noch über direktes Streaming. Es wird einfach nicht unterstützt.

+0

Nachdem ich versucht habe, dies zum Laufen zu bringen, ist dies meine Erfahrung von Android bis einschließlich 4.0 .... –

+0

Ich weiß, das ist eine alte Antwort, aber jemand könnte darüber stolpern: Wahrscheinlich hat mit OEM-Versionen und Funktionen zu tun, die sie hinzufügen. – Mgamerz

4

Es gibt jetzt eine Importfunktionalität für Android ICS 4.0.4. Zuerst müssen Sie Ihren VCF auf einem Speicher (USB-Speicher oder SD-Karte) speichern. Android durchsucht den ausgewählten Speicher nach vcf-Dateien und importiert sie in das ausgewählte Adressbuch. Die Funktionalität befindet sich im Optionsmenü Ihrer Kontaktliste.

3

Dies kann die Datei auf der SD-Karte Getestet mit Android-Version 2.3.3 und 4.0.3

======= php zum Download verwendet werden ========== ===============

<?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> 
4

nur damit Sie wissen: ich habe gerade versucht eine vCard 2.1-Datei erstellt gemäß der vCard 2.1 spec. Ich habe festgestellt, dass vCard 2.1, obwohl es eine alte Version ist, bereits alles abgedeckt hat, was ich brauchte, einschließlich eines base64-kodierten Fotos und internationaler Zeichensätze.

Es funktionierte perfekt auf meinem unmodifizierten Android 4.1.1 Gerät (Galaxy S3). Es funktionierte auch auf einem alten iPhone 3GS (iOS 5, über die Evernote app) und einem unmodifizierten alten Android 2.1-Gerät eines Kollegen. Sie müssen nur die Content-disposition wie oben vorgeschlagen auf attachment einstellen.

Ein kleines Problem war, dass ich den VCF-Download mit einer QR code ausgelöst habe, die ich mit der Microsoft Tag app gescannt habe. Diese App sagte mir Android konnte nicht die text/x-vcard Medientyp (oder nur text/vcard, egal). Nachdem ich den Link in einem Webbrowser geöffnet hatte (ich habe Chrome und den Standardbrowser von Android ausprobiert), funktionierte es einwandfrei.