3 Stimmen

Wie kann man die Kontakte-API für Android 1.x und 2.x gleichzeitig verwenden?

Mi Problem ist, dass ich Kontaktliste in meiner Anwendung für beide Android 1.5, 1.6 und 2.x zu implementieren müssen.

Ich habe es mit dem alten Kontakte API, nicht KontakteVertrag wegen der Abwärtskompatibilität mit der 1.x-Serie. Aber wenn meine App auf 2.x angezeigt wird, ist die Kontaktliste nicht vollständig. Auf einigen Geräten wird sie als leer angezeigt, und auf einigen Geräten zeigt sie nur einige der Kontakte im Gerät an.

Ich weiß, dass die Verwendung von Kontakte API der Serie 2.x werden nur die Kontakte des Hauptkontos angezeigt, aber das ist nicht der Fall. Es sieht so aus, als ob nur kürzlich aktualisierte Kontakte angezeigt werden, aber auch das ist nicht der Fall.

Die Frage ist also: Wie kann man die Kontaktliste sowohl für die 2.x als auch für die 1.x Android-Version korrekt implementieren?

Vielen Dank im Voraus

7voto

CommonsWare Punkte 950864

Aber wenn ich meine App auf 2.x anzeige, wird die ist die Kontaktliste nicht vollständig. Auf einigen Geräten wird sie als leer angezeigt, und bei einigen Geräten zeigt sie nur einige der der Kontakte auf dem Gerät.

Richtig. Die alte Kontakte-API greift nur auf Kontakte zu, die ausschließlich auf dem Gerät gespeichert sind, nicht auf solche, die über die Synchronisierung von anderen Anbietern bezogen wurden. Es gab auch einen Fehler mit Android 2.0, wo Sie nicht einmal die lokal gespeicherten Kontakte erhalten, obwohl das mit Android 2.0.1 IIRC behoben wurde.

Die Frage ist also: Wie kann man Kontaktliste sowohl für 2.x und 1.x Android Version?

Für kleinere versionsspezifische Änderungen (z. B. wenn Sie nur die richtige Uri ), können Sie einfach Reflexion verwenden, wie in dieses Beispielprojekt .

Wenn Ihre Anforderungen komplexer sind, können Sie die Vorteile des bedingten Klassenladens nutzen, indem Sie eine Schnittstelle (oder abstrakte Basisklasse) und zwei Implementierungen erstellen, eine für jede API-Stufe, und nur die richtige verwenden. Dies wird demonstriert in dieses Beispielprojekt .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X