Export contacts.vcf ungleich Import

  • 17 Antworten
  • Letztes Antwortdatum
founder

founder

Stamm-User
37
Habe Android 12 auf Vivo Y30 5G.
Eigentlich wollte ich nur die vcf Dateien analysieren, um einen vcf nach html Umwandler zu schreiben.
Doch ich machte dabei eine entsetzliche Entdeckung: Export ungleich Import

Es gibt ja bei Telefonnummer die Möglichkeit frei einen Text einzutragen.
Dies nütze ich öfter.
Zum Beispiel:
ACME GmbH
0043 1 1234567
Geschäftlich
0043 664 7654321
20250319 Rückruf Frau XYZ
0043 676 8765432
20250320 Techniker ABC

Diesen Eintrag exportieren und wieder importieren, dann lautet der neue Eintrag
ACME GmbH
0043 1 1234567
Geschäftlich
0043 664 7654321
Haustelefon
0043 676 8765432
Haustelefon

Wesentliche Informationen gehen verloren.

Darauf gekommen war ich durch meinen Tesla Y. Beim Suchen nach Namen. Klickt man einen Namen an, dann erscheint rechts eine Spalte mit allen Telefonnummern zu diesem Eintrag. Doch anstatt die Einträge wie "20250221 Rückruf" stand immer nur "Sonstiges".
Genau deswegen wollte ich den vcf nach html Umwandler schreiben.
Aber scheint die Tesla Software ist unschuldig, mein Vivo Y30 5G sendet über Bluettoth eine verstümmelte Adressdatei.

Eine Katastrophe, weil ich habe etwa 4500 Einträge mit 7000 Telefonnummern.
 
Der Inhalt des VCF Format (V2-4) ist nicht genormt und jeder Hersteller kann die darin spezifizierten Felder so verwenden/interpretieren, wie er möchte.
Es handelt sich also nicht um einen Bug des Smartphones, Version oder TESLA, sondern schlichtweg um die Definierung der jeweiligen Routinen des Entwicklers.
 
Zuletzt bearbeitet:
Informationen verschwinden zu lassen, ist Sabotage
 
  • Haha
Reaktionen: kurhaus_
Diesen Eintrag exportieren und wieder importieren
Wo ist der Fehler ? Beim Export oder beim Import ?


Wenn lediglich beim Import :
um einen vcf nach html Umwandler zu schreiben.
Dann erstelle Dir die Import Datei so, wie dein Ziel (Tesla ?) es benötigt.
 
Zuletzt bearbeitet:
Die Information geht beim Export verloren.
TEL;:0043 664 7654321
Zwische ; und : sollte
20250319 Rückruf Frau XYZ
stehen
 
Das ist KEIN Android12 Problem ( die Rubrik die du hier gewählt hast ) sondern ein "Problem" deiner verwendeten (Export) App (Siehe Post#2)

Du solltest nun mit verschiedenen Apps aus dem Appstore ausprobieren , welche Dir den vollständigen Export generieren.
Dabei spielt erst mal das Format (z.b. csv) keine Rolle - das käme später.

Dazu gibt es jede Menge Konvertierungsprogramme
 
Zuletzt bearbeitet:
Wenn ich den Vorgang richtig verstanden habe,
die App fordert Einträge vom Betriebssystem an und die werden verstümmelt geliefert.

Welche Apps wären denn für den Export erfolgversprechend?
 
Wenn ich den Vorgang richtig verstanden habe,
die App fordert Einträge vom Betriebssystem an und die werden verstümmelt geliefert.
Kann sein, wovon ich aber nicht ausgehe, da das Betriebssystem offensichtlich die Felder in der DB mitführt. (ContentResolver)
Der Punkt ist, dass du eine App-Export-Routine benötigst, die alle Felder berücksichtigt .

Ein weiterer Punkt kann sein, dass ein Eintrag wie z.b.
20250319 Rückruf Frau XYZ
bereits ein Feld-Delimiter (z.B. ":" ";" ",") besitzt und somit das als ungültiges Feld beim Export erkannt wird.


Welche Apps wären denn für den Export erfolgversprechend?
Kann ich nicht beantworten - ich gebe die Frage an unseren App-Spezialisten @holms weiter
 
Zuletzt bearbeitet:
swa00 schrieb:
bereits ein Delimiter (Trennzeichen = ":" ";" ",") besitzt und somit das als ungültiges Feld beim Export erkannt wird.
Dachte die Leerzeichen könnten ein Problem sein. Habe deswegen mit _ getestet. Nichts exportiert.
 
founder schrieb:
Welche Apps wären denn für den Export erfolgversprechend?
Andersherum: Welche App hast du denn verwendet?

Ich denke, fast jede Kontakte-App kann exportieren. Schon mit der Google Kontakte-App oder Fossify Contacts probiert?

Wichtig ist: Mit derselben App exportieren und importieren, damit das Format stimmt.
founder schrieb:
mein Vivo Y30 5G sendet über Bluettoth eine verstümmelte Adressdatei.
Meinst du, das Senden hätte etwas damit zu tun? Dann übertrage die Datei auf anderem Weg.
 
  • Danke
Reaktionen: swa00
Wichtig ist: Mit derselben App exportieren und importieren, damit das Format stimmt.

Genau das kann er nicht - er möchte z.b. in seinen Tesla importieren ..
Da wird er um das manuelle Anpassen vermutlich nicht herum kommen

Aber hat ja beim Export schon nicht alle Felder
 
holms schrieb:
Schon mit der Google Kontakte-App oder Fossify Contacts probiert?
Gerade installiert und meine Kontakte exportiert.
Die bei anderen Exporten fehlenden Felder wurden richtig exportiert.

Beim Export gab es aber eine Fehlermeldung:

Fehler:java.lang.illegalArgumentExceotion
Property "TEL" has a parameter named "T...

Mehr Fehlermeldung gab es leider auch nicht im Querformat größer.

Dadurch hatte die exportierte Datei nur 2810 statt 3950 Adressen

Zum Tesla: sobald ich in der Nähe bin, holt sich der Tesla die Adressen über Bluetooth.
Weiß nicht, wie ich das beeinflussen kann, dass der Tesla die Adressen anders abruft.
 
@founder Wie dein Tesla diese Kontakte bekommt (synchronisiert), kannst du soweit ich weiß nicht beeinflussen.

Insofern helfen manuelle Exporte möglicherweise gar nicht.

Eventuell liegt das Problem darin:
founder schrieb:
Es gibt ja bei Telefonnummer die Möglichkeit frei einen Text einzutragen.
Keine meiner Kontakte-Apps lässt das zu, da Text einzutragen als Telefonnummer.

Vielleicht eben das Problem, dass deine App im Vivo das aber macht. Kann dann Kollision mit anderen Apps geben.
Beiträge automatisch zusammengeführt:

Ergänzung als Beispiel:
founder schrieb:
20250319 Rückruf Frau XYZ
Sowieso liest sich das als Aufgabe:
"Am 19.03.2025 Frau XYZ zurückrufen."

Das hat in Kontakten eher nichts zu suchen ;). Vielleicht lieber mal dafür eine vernünftige Aufgabenapp verwenden (zur Not auch Kalender-App).

Vor allem wenn das die Ursache für das ganze Problem sein sollte...
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: swa00
ich müsste nach der Fehlermeldung
Fehler:java.lang.illegalArgumentExceotion
Property "TEL" has a parameter named "T...
@holms zustimmen.

auf Deutsch :
Inhalt des Feldes TEL (i.d.R. eine gültige Nummer ) enthält einen ungültigen Eintrag "T"
Die Export-Programme erwarten hier also (zurecht) einen numerischen Wert - Ausnahmen: "(" , ")", "+"

Denn dies ist auch für vCard und Typ "TEL" so spezifiziert
TELunterstütztunterstütztunterstütztNormalform einer numerischen Zeichenkette für eine Telefonnummer zur telefonischen Kommunikation mit dem vCard-Objekt.TEL;TYPE=CELL ( 0180 ) 1234567
TEL;TYPE=VOICE,HOME:+4141310xxyy

Es gibt dafür extra das Feld "NOTIZ"
NOTEunterstütztunterstütztunterstütztZusätzliche Informationen oder Kommentar, welche mit der vCard in Verbindung stehen.NOTE:Ich bin eine fiktive Person aus Deutschland und ich bin bundesweit bekannt.


Die "Sabotage" ( Post#3) hast Du also leider selbst vorgenommen
Dadurch hatte die exportierte Datei nur 2810 statt 3950 Adressen
... und das bei 1140 Einträgen

Eine Katastrophe, weil ich habe etwa 4500 Einträge mit 7000 Telefonnummern.
Jetzt stellt sich die Frage, wo hier die anderen ~600 Adressen sind ...


Import Tesla :
Lt. meiner Recherche gibt es bei Android nur die Bluetooth Variante, aber hier scheint auch Tesla sich an die Spezifikationen zu halten und kommt mit Zeichen in einem numerischen Feld nicht zurecht .
 
Zuletzt bearbeitet:
swa00 schrieb:
Jetzt stellt sich die Frage, wo hier die anderen ~600 Adressen sind ...
Das Original Kontakt Programm am Vivoexportiert auch die Google Adressen.
Dadurch wurden einige Adressen als "Am Telefon" und "bei Google gespeichert" doppelt exportiert.
Bei Fossify konnte man auswählen, was exportiert wird.

Die Anmerkungen sind immer im Feld, was dies für eine Telefonnummer ist.
Da gibt es auch "Sonstiges" mit freier Texteingabe.
20250319 Rückruf Frau XYZ
bedeutet am 19 März hat mich Frau XYZ von dieser Firma zurückgerufen

20250301 Nummer nicht vergeben
führte zu einer Suche nach dem Namen der Person,
Google brachte als ersten Sucheintrag ein Beerdigungsinstitut,
Telefon abgemeldet, weil 8 Tage vorher verstorben

Bei Programmiersprachen gibt es grundsätzlich Fehler Routinen wie try { } catch (e) { }
und nicht einfach aufgeben, weil irgendwo ein Fehler ist.
Beiträge automatisch zusammengeführt:

swa00 schrieb:
Import Tesla :
Lt. meiner Recherche gibt es bei Android nur die Bluetooth Variante, aber hier scheint auch Tesla sich an die Spezifikationen zu halten und kommt mit Zeichen in einem numerischen Feld nicht zurecht .
Hier arbeitet die Original Kontaktapp von meinem Vivo Y30 5G. Diese überträgt das Feld "Art des Telefons" nicht, wenn es als "Sonstiges" einen beliebigen Texteintrag hat.
 
Zuletzt bearbeitet:
Es ist schon sehr merkwürdig, nachdem sich hier gleich zwei Personen deinem Problem angenommen haben , du immer noch nicht ansatzweise einsehen möchtest , dass du unbedacht 4500 Adressen verwaltest und jetzt auf das System, Schnittstellen Spezifikationen oder Hersteller schimpfst und nicht ein einziges Mal ein Danke über deine Lippen kam.

Man könnte jetzt auch darüber streiten, warum ein Programm einen alphanumerischen Eintrag zulässt , ob wohl von der Spezifikation her nicht zulässig. Aber ein bisschen sollte man schon selbst mitdenken , das "Rückruf" keine Telefonnummer (Zahl) ist.
Man testet so Etwas im Vorfeld aus, bevor man sich auf 4500 Adressen stürzt.

Man hat den Eindruck, nur die "Anderen" sind schuld (Dein "Sabotage") - und jetzt auch noch wir :)


Und jetzt auch noch der Programmierer - obwohl du nicht eine einzige Zeile von ihm kennst - sehr sehr merkwürdig .

Bei Programmiersprachen gibt es grundsätzlich Fehler Routinen wie try { } catch (e) { }
und nicht einfach aufgeben, weil irgendwo ein Fehler ist.

Hier wird bereits eindeutig mit einen try/catch gearbeitet und dieses lediglich übersprungen und mit weiteren Feldern fortgefahren.
Sonst hättest du auch keine gültigen 2810, wenn es das nicht tun würde.

Java:
for (int entries; i< entries.size(); i++ ) {
 try {
    // Eintrag gültig : exportiere ihn

 } catch (IllegalArgumentException e) {
  // Eintrag NICHT gültig: ignoriere Eintrag, gebe ErrorMessage aus und fahre mit Schleife fort
 }
}

finally {
//  Schreibe gültige Einträge in Datei
}
 
Zuletzt bearbeitet:
Gerade 4 Kontakte apps probiert.
3 wurden nach der ersten Werbeorgie umgehend gelöscht.
Schlichte Kontakte exportierte nur 1910 Kontakte.
Werde wohl den Programmierer von Fossify persönlich wegen des Fehlers kontaktieren.
Beiträge automatisch zusammengeführt:

swa00 schrieb:
Nicht richtig :
Hier wird bereits mit einen try/catch gearbeitet und dieses lediglich übersprungen und mit weiteren Feldern fortgefahren.
Sonst hättest du auch keine gültigen 2810, wenn es das nicht tun würde.

Dann sollte nur 1 Kontakt betroffen sein.
Aber der Export wurde offensichtlich nach dem ersten Fehler abgebrochen.
Schlichte Kontakte sieht sehr ähnlich aus, hat aber vermutlich in einer anderen Reihenfolge exportiert, um nach 1910 Kontakten zu scheitern.
 
Zuletzt bearbeitet:
Habe gerade eine Menge Apps installiert und wieder gelöscht.
Wenn mich eine App mitten in der Nacht laut andudelt, wird sofort deinstalliert.
Gerade ist Kontakte Google LLC dran.
Beim Export fehlen 317 Einträge vom freien Text.
Den Vogel schießt aber iExport Contact ab. Da werden überhaupt keine Telefonnummern exportiert.
MCBackup - My Contacts Backup hat es dann schließlich geschafft.
 
Zurück
Oben Unten