Ein synchronisiertes Account dem Kontakte-Dialog als default zuweisen

  • 4 Antworten
  • Neuester Beitrag
Diskutiere Ein synchronisiertes Account dem Kontakte-Dialog als default zuweisen im Android App Entwicklung im Bereich Betriebssysteme & Apps.
F

foren.junkie

Neues Mitglied
Hallo Leute,

im Rahmen der Aufgabenprojektes lege ich einen Account am Andorid programmatisch an, dieses wird auch automatisch mit den Daten vom server aus synchronisiert. Der Benutzer braucht gar nichts zu tun, sondern sobald er das Gerät nutzt, hat er einen bestimten Satz an Kontakten in dem Account.

Nun soll der Benutzer jedoch auch personenbezogege kontakte hinzufügen können. diese werden ebenfalls serverseitig abgespeichert. Das problem stellt sich mir in dem Moment, wo der Benutzer die Kontakte-Maske(Standard-Android-Kontakte-Dialog) angezeigt bekommt und den Kontakt hinzufügen will, so bekommt er eine Anfrage, ob ein neues Acoount angelegt werden soll. Ich habe keine Idee was ich falsch mache. Meines verständnis nach, habe ich ja bereits ein Account (und die Daten daraus werden auch sauber angezeigt). weiss einer, wie kann ich dem Android beibringen, dass der Kontakte-Dialog mein Account für die neuen Kontakte nutzen soll?

Viele Grüße
Alex
 
swa00

swa00

Moderator
Teammitglied
Hallo Alex,

erklärst du uns bitte erst einmal, wie du das

" lege ich einen Account am Andorid programmatisch an, dieses wird auch automatisch mit den Daten vom server aus synchronisiert. Der Benutzer braucht gar nichts zu tun, sondern sobald er das Gerät nutzt, hat er einen bestimten Satz an Kontakten in dem Account"
bewerkstelligst.
 
Zuletzt bearbeitet:
F

foren.junkie

Neues Mitglied
Es geht darum, mehreren Benutzern den selben satz an Kontakten anbieten zu können. Meine App, die dem Benutzer am Android zur Verfügung steht, fügt über den AccountManager ein Account hinzu.

private Account accountRoLdap = new Account(ACCOUNT_NAME_RO_LDAP, ACCOUNT_TYPE);
...
AccountManager accountManager = (AccountManager) context.getSystemService(Context.ACCOUNT_SERVICE);
boolean success = accountManager.addAccountExplicitly(accountRoLdap, null, null);


Über das Android-SyncFramework, samt des SyncAdaper (extends AbstractThreadedSyncAdapter) synchronisiere ich die Daten.

Es wird ebenfalls ein zweites account hinzugefügt, welches zur Synchronisierung der Benutzerspezifischen daten benutzt wird.

Account accountRwPersolal = new Account(ACCOUNT_NAME_RW_PERSONAL, ACCOUNT_TYPE);
...
boolean success = accountManager.addAccountExplicitly(accountRwPersolal, null, null);


Ich hoffe das diese Info ausreichen ist. bei Fragen: fragen!
 
Zuletzt bearbeitet:
F

foren.junkie

Neues Mitglied
bin jetzt weiter gekommen. Habe in der syncadapter.xml die contentAuthority auf authority vom Standard-Contacts-Provider eingestellt:

<sync-adapter
...
android:contentAuthority="com.android.contacts"
android:accountType="@string/authenticator_account_type"
...
/>


sowie mein Account mit der Authority des standard-Android-Provider syncronisierbar gesetzt.

ContentResolver.setSyncAutomatically(account, "com.android.contacts", true);
ContentResolver.setIsSyncable(account, "com.android.contacts", 1);
ContentResolver.addPeriodicSync(account, "com.android.contacts", Bundle.EMPTY, SYNC_INTERVAL);


Nun werden meine Accounts im Kontakte Dialog angezeigt, die Daten werden synchronisiert, alles super, bis auf eine Sache:

Sobald ich einen neuen Eintrag hinzugüge, legt android diesen automatisch als lokalen Kontakt ab und nicht im meinem synchronisiertem Account. Nun habe ich zwei Accounts und hätte erwartet, dass android entweder eine Frage an den Benutzer stellt oder automatisch einem der registrierten Konten zuordnet. Beides passiert nicht.

Hat ein jemand eine Idee wie ich es so machen kann, dass der neue Benutzer automatisch einem der Accounts zugeordnet wird?
 
swa00

swa00

Moderator
Teammitglied
Hallo Junkie,

nicht dass du das Gefühl hast, wir würden dich ignorieren und auch an dieser Stelle ein Danke für dein Feedback.
Allerdings habe ich mich persönlich noch nicht mit Accounts auseinander gesetzt, kann also kaum Hilfe leisten.

Lese aber aufmerksam mit :)

lg

Stefan