24
comptes utilisateurs et synchronisation Simon GUEROUT GDG Montréal 25/09/2104

GDG Montréal - Account Manager Basics and Use Case

  • Upload
    sidereo

  • View
    252

  • Download
    2

Embed Size (px)

DESCRIPTION

Comment utiliser le gestionnaire de compte d'Android. How to use Android's Account Manager.

Citation preview

Page 1: GDG Montréal - Account Manager Basics and Use Case

comptes utilisateurs

et synchronisation

Simon GUEROUT

GDG Montréal

25/09/2104

Page 2: GDG Montréal - Account Manager Basics and Use Case

Simon GUEROUT

Sidereo Solutions Inc.

@saiimons

+SimonGuerout

[email protected]

Page 3: GDG Montréal - Account Manager Basics and Use Case

Je vais vous parler de

Page 4: GDG Montréal - Account Manager Basics and Use Case

L’Authenticator

Page 5: GDG Montréal - Account Manager Basics and Use Case

L’Authenticator<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"android:accountType="com.android.email"

android:icon="@mipmap/ic_launcher_mail"android:smallIcon="@drawable/stat_notify_email"android:label="IMAP"android:accountPreferences="@xml/account_preferences"

/>

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"

android:accountType="com.android.email"android:icon="@mipmap/ic_launcher_mail"android:smallIcon="@drawable/stat_notify_email"android:label="POP3"android:accountPreferences="@xml/account_preferences"

/>

Page 6: GDG Montréal - Account Manager Basics and Use Case

L’Account

Page 7: GDG Montréal - Account Manager Basics and Use Case

Le ContentProvider

Page 8: GDG Montréal - Account Manager Basics and Use Case

Le ContentProvider

<providerandroid:name=".provider.EmailProvider"

android:authorities="com.android.email.provider;com.android.email.notifier"android:exported="true"android:permission="com.android.email.permission.ACCESS_PROVIDER"android:label="@string/app_name"/>

Page 9: GDG Montréal - Account Manager Basics and Use Case

Le SyncAdapter

public void onPerformSync(Account account, Bundle extras, String authority,ContentProviderClient provider, SyncResult syncResult

) {…

}

<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"

android:contentAuthority="com.android.email.provider"android:accountType="com.android.email"

android:supportsUploading="true"android:allowParallelSyncs="true"

/>

Page 10: GDG Montréal - Account Manager Basics and Use Case

Le ContentResolver

Page 11: GDG Montréal - Account Manager Basics and Use Case

Fonctionnement

Page 12: GDG Montréal - Account Manager Basics and Use Case

Pros & cons

The Android Way

Gestion facile de la synchronisation

Plus de développement

Page 13: GDG Montréal - Account Manager Basics and Use Case

Cas d’usage

...

Page 14: GDG Montréal - Account Manager Basics and Use Case

Cas d’usage

Page 15: GDG Montréal - Account Manager Basics and Use Case

C’est tout à fait adapté !

Page 16: GDG Montréal - Account Manager Basics and Use Case

Oui mais...

Page 17: GDG Montréal - Account Manager Basics and Use Case

Liste de comptes

public static final class Source implements BaseColumns {public static final String TYPE_ITEM = CURSOR_ITEM_BASE_TYPE + "/" + Source.class.getCanonicalName().toLowerCase();public static final String TYPE_DIR = CURSOR_DIR_BASE_TYPE + "/" + Source.class.getCanonicalName().toLowerCase();public static final String FIELD_NAME = "name";public static final String FIELD_TYPE = "type";public static final String ID = TABLE_DEFAULT_ID;private Source() {}

}

Page 18: GDG Montréal - Account Manager Basics and Use Case

Liste des informations affichées

public static class News implements BaseColumns {public static final String TYPE_ITEM = CURSOR_ITEM_BASE_TYPE + "/" +

News.class.getCanonicalName().toLowerCase();public static final String TYPE_DIR = CURSOR_DIR_BASE_TYPE + "/" +

News.class.getCanonicalName().toLowerCase(); public static final String FIELD_SOURCE_ID = "source_id";public static final String FIELD_ORIGINAL_ID = "original_id";public static final String FIELD_TITLE = "title";public static final String FIELD_SUMMARY = "summary";public static final String FIELD_URL = "url";public static final String FIELD_DATE = "date";public static final String FIELD_IMAGE = "img";public static final String ID = TABLE_DEFAULT_ID;

private News() {}

}

Page 19: GDG Montréal - Account Manager Basics and Use Case

Plusieurs Authenticator

Page 20: GDG Montréal - Account Manager Basics and Use Case

Avec un seul Authenticator

Page 21: GDG Montréal - Account Manager Basics and Use Case

Choix d’architecture

Page 22: GDG Montréal - Account Manager Basics and Use Case

Démo

Page 23: GDG Montréal - Account Manager Basics and Use Case

Conclusion

Page 24: GDG Montréal - Account Manager Basics and Use Case