1/* 2 * Copyright (C) 2009 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17package android.accounts; 18 19import android.accounts.IAccountManagerResponse; 20import android.accounts.Account; 21import android.accounts.AuthenticatorDescription; 22import android.os.Bundle; 23 24 25/** 26 * Central application service that provides account management. 27 * @hide 28 */ 29interface IAccountManager { 30 String getPassword(in Account account); 31 String getUserData(in Account account, String key); 32 AuthenticatorDescription[] getAuthenticatorTypes(int userId); 33 Account[] getAccounts(String accountType); 34 Account[] getAccountsForPackage(String packageName, int uid); 35 Account[] getAccountsByTypeForPackage(String type, String packageName); 36 Account[] getAccountsAsUser(String accountType, int userId); 37 void hasFeatures(in IAccountManagerResponse response, in Account account, in String[] features); 38 void getAccountsByFeatures(in IAccountManagerResponse response, String accountType, in String[] features); 39 boolean addAccountExplicitly(in Account account, String password, in Bundle extras); 40 void removeAccount(in IAccountManagerResponse response, in Account account, 41 boolean expectActivityLaunch); 42 void removeAccountAsUser(in IAccountManagerResponse response, in Account account, 43 boolean expectActivityLaunch, int userId); 44 boolean removeAccountExplicitly(in Account account); 45 void copyAccountToUser(in IAccountManagerResponse response, in Account account, 46 int userFrom, int userTo); 47 void invalidateAuthToken(String accountType, String authToken); 48 String peekAuthToken(in Account account, String authTokenType); 49 void setAuthToken(in Account account, String authTokenType, String authToken); 50 void setPassword(in Account account, String password); 51 void clearPassword(in Account account); 52 void setUserData(in Account account, String key, String value); 53 void updateAppPermission(in Account account, String authTokenType, int uid, boolean value); 54 55 void getAuthToken(in IAccountManagerResponse response, in Account account, 56 String authTokenType, boolean notifyOnAuthFailure, boolean expectActivityLaunch, 57 in Bundle options); 58 void addAccount(in IAccountManagerResponse response, String accountType, 59 String authTokenType, in String[] requiredFeatures, boolean expectActivityLaunch, 60 in Bundle options); 61 void addAccountAsUser(in IAccountManagerResponse response, String accountType, 62 String authTokenType, in String[] requiredFeatures, boolean expectActivityLaunch, 63 in Bundle options, int userId); 64 void updateCredentials(in IAccountManagerResponse response, in Account account, 65 String authTokenType, boolean expectActivityLaunch, in Bundle options); 66 void editProperties(in IAccountManagerResponse response, String accountType, 67 boolean expectActivityLaunch); 68 void confirmCredentialsAsUser(in IAccountManagerResponse response, in Account account, 69 in Bundle options, boolean expectActivityLaunch, int userId); 70 void getAuthTokenLabel(in IAccountManagerResponse response, String accountType, 71 String authTokenType); 72 73 /* Shared accounts */ 74 boolean addSharedAccountAsUser(in Account account, int userId); 75 Account[] getSharedAccountsAsUser(int userId); 76 boolean removeSharedAccountAsUser(in Account account, int userId); 77 78 /* Account renaming. */ 79 void renameAccount(in IAccountManagerResponse response, in Account accountToRename, String newName); 80 String getPreviousName(in Account account); 81 boolean renameSharedAccountAsUser(in Account accountToRename, String newName, int userId); 82 83} 84