1 /*
2 **
3 ** Copyright 2012, The Android Open Source Project
4 **
5 ** Licensed under the Apache License, Version 2.0 (the "License");
6 ** you may not use this file except in compliance with the License.
7 ** You may obtain a copy of the License at
8 **
9 **     http://www.apache.org/licenses/LICENSE-2.0
10 **
11 ** Unless required by applicable law or agreed to in writing, software
12 ** distributed under the License is distributed on an "AS IS" BASIS,
13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 ** See the License for the specific language governing permissions and
15 ** limitations under the License.
16 */
17 
18 package android.os;
19 
20 import android.os.Bundle;
21 import android.os.PersistableBundle;
22 import android.os.UserManager;
23 import android.content.pm.UserInfo;
24 import android.content.IntentSender;
25 import android.content.RestrictionEntry;
26 import android.graphics.Bitmap;
27 import android.os.ParcelFileDescriptor;
28 
29 /**
30  *  {@hide}
31  */
32 interface IUserManager {
33 
34     /*
35      * DO NOT MOVE - UserManager.h depends on the ordering of this function.
36      */
getCredentialOwnerProfile(int userHandle)37     int getCredentialOwnerProfile(int userHandle);
getProfileParentId(int userHandle)38     int getProfileParentId(int userHandle);
39     /*
40      * END OF DO NOT MOVE
41      */
42 
createUser(in String name, int flags)43     UserInfo createUser(in String name, int flags);
preCreateUser(int flags)44     UserInfo preCreateUser(int flags);
createProfileForUser(in String name, int flags, int userHandle, in String[] disallowedPackages)45     UserInfo createProfileForUser(in String name, int flags, int userHandle,
46             in String[] disallowedPackages);
createRestrictedProfile(String name, int parentUserHandle)47     UserInfo createRestrictedProfile(String name, int parentUserHandle);
setUserEnabled(int userHandle)48     void setUserEnabled(int userHandle);
setUserAdmin(int userId)49     void setUserAdmin(int userId);
evictCredentialEncryptionKey(int userHandle)50     void evictCredentialEncryptionKey(int userHandle);
removeUser(int userHandle)51     boolean removeUser(int userHandle);
removeUserEvenWhenDisallowed(int userHandle)52     boolean removeUserEvenWhenDisallowed(int userHandle);
setUserName(int userHandle, String name)53     void setUserName(int userHandle, String name);
setUserIcon(int userHandle, in Bitmap icon)54     void setUserIcon(int userHandle, in Bitmap icon);
getUserIcon(int userHandle)55     ParcelFileDescriptor getUserIcon(int userHandle);
getPrimaryUser()56     UserInfo getPrimaryUser();
getUsers(boolean excludePartial, boolean excludeDying, boolean excludePreCreated)57     List<UserInfo> getUsers(boolean excludePartial, boolean excludeDying, boolean excludePreCreated);
getProfiles(int userHandle, boolean enabledOnly)58     List<UserInfo> getProfiles(int userHandle, boolean enabledOnly);
getProfileIds(int userId, boolean enabledOnly)59     int[] getProfileIds(int userId, boolean enabledOnly);
canAddMoreManagedProfiles(int userHandle, boolean allowedToRemoveOne)60     boolean canAddMoreManagedProfiles(int userHandle, boolean allowedToRemoveOne);
getProfileParent(int userHandle)61     UserInfo getProfileParent(int userHandle);
isSameProfileGroup(int userHandle, int otherUserHandle)62     boolean isSameProfileGroup(int userHandle, int otherUserHandle);
63     @UnsupportedAppUsage
getUserInfo(int userHandle)64     UserInfo getUserInfo(int userHandle);
getUserAccount(int userHandle)65     String getUserAccount(int userHandle);
setUserAccount(int userHandle, String accountName)66     void setUserAccount(int userHandle, String accountName);
getUserCreationTime(int userHandle)67     long getUserCreationTime(int userHandle);
isRestricted()68     boolean isRestricted();
canHaveRestrictedProfile(int userHandle)69     boolean canHaveRestrictedProfile(int userHandle);
getUserSerialNumber(int userHandle)70     int getUserSerialNumber(int userHandle);
getUserHandle(int userSerialNumber)71     int getUserHandle(int userSerialNumber);
getUserRestrictionSource(String restrictionKey, int userHandle)72     int getUserRestrictionSource(String restrictionKey, int userHandle);
getUserRestrictionSources(String restrictionKey, int userHandle)73     List<UserManager.EnforcingUser> getUserRestrictionSources(String restrictionKey, int userHandle);
getUserRestrictions(int userHandle)74     Bundle getUserRestrictions(int userHandle);
hasBaseUserRestriction(String restrictionKey, int userHandle)75     boolean hasBaseUserRestriction(String restrictionKey, int userHandle);
hasUserRestriction(in String restrictionKey, int userHandle)76     boolean hasUserRestriction(in String restrictionKey, int userHandle);
hasUserRestrictionOnAnyUser(in String restrictionKey)77     boolean hasUserRestrictionOnAnyUser(in String restrictionKey);
setUserRestriction(String key, boolean value, int userHandle)78     void setUserRestriction(String key, boolean value, int userHandle);
setApplicationRestrictions(in String packageName, in Bundle restrictions, int userHandle)79     void setApplicationRestrictions(in String packageName, in Bundle restrictions,
80             int userHandle);
getApplicationRestrictions(in String packageName)81     Bundle getApplicationRestrictions(in String packageName);
getApplicationRestrictionsForUser(in String packageName, int userHandle)82     Bundle getApplicationRestrictionsForUser(in String packageName, int userHandle);
setDefaultGuestRestrictions(in Bundle restrictions)83     void setDefaultGuestRestrictions(in Bundle restrictions);
getDefaultGuestRestrictions()84     Bundle getDefaultGuestRestrictions();
markGuestForDeletion(int userHandle)85     boolean markGuestForDeletion(int userHandle);
isQuietModeEnabled(int userHandle)86     boolean isQuietModeEnabled(int userHandle);
setSeedAccountData(int userHandle, in String accountName, in String accountType, in PersistableBundle accountOptions, boolean persist)87     void setSeedAccountData(int userHandle, in String accountName,
88             in String accountType, in PersistableBundle accountOptions, boolean persist);
getSeedAccountName()89     String getSeedAccountName();
getSeedAccountType()90     String getSeedAccountType();
getSeedAccountOptions()91     PersistableBundle getSeedAccountOptions();
clearSeedAccountData()92     void clearSeedAccountData();
someUserHasSeedAccount(in String accountName, in String accountType)93     boolean someUserHasSeedAccount(in String accountName, in String accountType);
isManagedProfile(int userId)94     boolean isManagedProfile(int userId);
isDemoUser(int userId)95     boolean isDemoUser(int userId);
isPreCreated(int userId)96     boolean isPreCreated(int userId);
createProfileForUserEvenWhenDisallowed(in String name, int flags, int userHandle, in String[] disallowedPackages)97     UserInfo createProfileForUserEvenWhenDisallowed(in String name, int flags, int userHandle,
98             in String[] disallowedPackages);
isUserUnlockingOrUnlocked(int userId)99     boolean isUserUnlockingOrUnlocked(int userId);
getManagedProfileBadge(int userId)100     int getManagedProfileBadge(int userId);
isUserUnlocked(int userId)101     boolean isUserUnlocked(int userId);
isUserRunning(int userId)102     boolean isUserRunning(int userId);
isUserNameSet(int userHandle)103     boolean isUserNameSet(int userHandle);
hasRestrictedProfiles()104     boolean hasRestrictedProfiles();
requestQuietModeEnabled(String callingPackage, boolean enableQuietMode, int userHandle, in IntentSender target)105     boolean requestQuietModeEnabled(String callingPackage, boolean enableQuietMode, int userHandle, in IntentSender target);
getUserName()106     String getUserName();
getUserStartRealtime()107     long getUserStartRealtime();
getUserUnlockRealtime()108     long getUserUnlockRealtime();
notifyOnNextUserRemoveForTest()109     void notifyOnNextUserRemoveForTest();
110 }
111