Slide 1

Slide 1 text

Differences of AccountManager from API 22 to 24 kyobashi.dex #4 @sho5nn

Slide 2

Slide 2 text

AccountManager ?

Slide 3

Slide 3 text

AccountManager

Slide 4

Slide 4 text

AccountManager - Authenticator https://developer.android.com/reference/android/accounts/AbstractAccountAuthenticator.html authenticator.xml public abstract class AbstractAccounAuthenticator { public abstract Bundle addAccount() public abstract Bundle getAuthToken() android.accounts.AbstractAccountAuthenticator

Slide 5

Slide 5 text

AccountManager - Accessor https://developer.android.com/reference/android/accounts/AccountManager.html android.accounts.AccountManager public class AccountManager { public AccountManagerFuture addAccount(String accountType, ...) public AccountManagerFuture getAuthToken(Account account, ...)

Slide 6

Slide 6 text

AccountManager - Mechanism for managing accounts authenticator com.sample app app 1/3 Manage accounts at one app, Access accounts from one app.

Slide 7

Slide 7 text

AccountManager - Mechanism for managing accounts authenticator com.sample app app getAuthToken (com.sample) token getAuthToken (com.sample) token 2/3 Manage accounts at one app, Access accounts from multiple app.

Slide 8

Slide 8 text

AccountManager - Mechanism for managing accounts authenticator com.sample app com.sample app com.sample getAuthToken (com.sample) token getAuthToken (com.sample) token 3/3 Manage accounts at multiple app, Access accounts from multiple app. First installed app Second installed app Third installed app

Slide 9

Slide 9 text

AccountManager - Mechanism for managing accounts authenticator com.sample app com.sample app com.sample getAuthToken (com.sample) token getAuthToken (com.sample) token Uninstall... Second installed app Third installed app 3/3 Manage accounts at multiple app, Access accounts from multiple app.

Slide 10

Slide 10 text

AccountManager - Mechanism for managing accounts authenticator com.sample app com.sample getAuthToken (com.sample) token Second installed app Third installed app 3/3 Manage accounts at multiple app, Access accounts from multiple app.

Slide 11

Slide 11 text

Diff API 22 to 23

Slide 12

Slide 12 text

Diff API 22 to 23 - Permissions https://developer.android.com/training/permissions/requesting.html

Slide 13

Slide 13 text

Diff API 22 to 23 - Permissions https://developer.android.com/sdk/api_diff/23/changes.html

Slide 14

Slide 14 text

Diff API 22 to 23 - Permissions Removed. ● android.Manifest.permission.AUTHENTICATE_ACCOUNTS ● android.Manifest.permission.MANAGE_ACCOUNTS ● android.Manifest.permission.USE_CREDENTIALS Not removed. ● android.Manifest.permission.GET_ACCOUNTS

Slide 15

Slide 15 text

Diff API 22 to 23 - Permissions https://developer.android.com/sdk/api_diff/23/changes.html

Slide 16

Slide 16 text

Diff API 22 to 23 - Permissions https://developer.android.com/sdk/api_diff/23/changes.html

Slide 17

Slide 17 text

Diff API 22 to 23 - Permissions https://developer.android.com/sdk/api_diff/23/changes.html

Slide 18

Slide 18 text

Diff API 22 to 23 - Permissions authenticator com.sample app com.sample app com.sample First installed app Second installed app Third installed app Denied GET_ACCOUNTS Account[] accounts = accountManager.getAccountsByType(“com.sample”); // accounts.length == 3 Denied GET_ACCOUNTS

Slide 19

Slide 19 text

Diff API 22 to 23 - Permissions authenticator com.sample app com.sample app com.sample First installed app Second installed app Third installed app Account[] accounts = accountManager.getAccountsByType(“com.sample”); // accounts.length == 0 Denied GET_ACCOUNTS Denied GET_ACCOUNTS

Slide 20

Slide 20 text

Diff API 22 to 23 - Permissions authenticator com.sample app com.sample app com.sample First installed app Second installed app Third installed app Account[] accounts = accountManager.getAccountsByType(“com.sample”); // accounts.length == 3 Denied GET_ACCOUNTS Granted GET_ACCOUNTS

Slide 21

Slide 21 text

Diff API 23 to 24

Slide 22

Slide 22 text

Diff API 23 to 24 - Not inherit accounts On API 23 and before authenticator com.sample app com.sample app com.sample First installed app Second installed app Third installed app account 1 account 2

Slide 23

Slide 23 text

app com.sample app com.sample Uninstall... Second installed app Third installed app account 1 account 2 authenticator com.sample Diff API 23 to 24 - Not inherit accounts On API 23 and before

Slide 24

Slide 24 text

authenticator com.sample app com.sample Second installed app Third installed app account 1 account 2 Diff API 23 to 24 - Not inherit accounts On API 23 and before

Slide 25

Slide 25 text

authenticator com.sample app com.sample Second installed app Third installed app account 1 account 2 Diff API 23 to 24 - Not inherit accounts On API 23 and before

Slide 26

Slide 26 text

authenticator com.sample app com.sample app com.sample First installed app Second installed app Third installed app account 1 account 2 Diff API 23 to 24 - Not inherit accounts On API 24 and after

Slide 27

Slide 27 text

On API 24 and after app com.sample app com.sample Uninstall... Second installed app Third installed app account 1 account 2 authenticator com.sample Diff API 23 to 24 - Not inherit accounts

Slide 28

Slide 28 text

authenticator com.sample app com.sample Second installed app Third installed app Diff API 23 to 24 - Not inherit accounts On API 24 and after

Slide 29

Slide 29 text

authenticator com.sample app com.sample Second installed app Third installed app On API 24 and after Diff API 23 to 24 - Not inherit accounts empty...

Slide 30

Slide 30 text

Differences of AccountManager from API 22 to 24 kyobashi.dex #4 @sho5nn

Slide 31

Slide 31 text

No content