1d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn/* 2d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** 3d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** Copyright 2010, The Android Open Source Project 4d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** 5d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** Licensed under the Apache License, Version 2.0 (the "License"); 6d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** you may not use this file except in compliance with the License. 7d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** You may obtain a copy of the License at 8d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** 9d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** http://www.apache.org/licenses/LICENSE-2.0 10d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** 11d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** Unless required by applicable law or agreed to in writing, software 12d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** distributed under the License is distributed on an "AS IS" BASIS, 13d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** See the License for the specific language governing permissions and 15d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** limitations under the License. 16d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn*/ 17d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn 1887bba1ee14279bb14a28d42e27c4ef66d9967bf8Dianne Hackbornpackage android.app.admin; 19d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn 20d68478467e3f837511196c80891d7245d0e163dfDianne Hackbornimport android.content.ComponentName; 218ea138cbf12b140d43fd81f4f12fe1a9234f1f25Dianne Hackbornimport android.os.RemoteCallback; 22d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn 23d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn/** 24d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn * Internal IPC interface to the device policy service. 25d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn * {@hide} 26d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn */ 27d68478467e3f837511196c80891d7245d0e163dfDianne Hackborninterface IDevicePolicyManager { 28599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setPasswordQuality(in ComponentName who, int quality, int userHandle); 29599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int getPasswordQuality(in ComponentName who, int userHandle); 30a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev 31599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setPasswordMinimumLength(in ComponentName who, int length, int userHandle); 32599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int getPasswordMinimumLength(in ComponentName who, int userHandle); 33a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev 34599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setPasswordMinimumUpperCase(in ComponentName who, int length, int userHandle); 35599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int getPasswordMinimumUpperCase(in ComponentName who, int userHandle); 36a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev 37599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setPasswordMinimumLowerCase(in ComponentName who, int length, int userHandle); 38599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int getPasswordMinimumLowerCase(in ComponentName who, int userHandle); 39a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev 40599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setPasswordMinimumLetters(in ComponentName who, int length, int userHandle); 41599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int getPasswordMinimumLetters(in ComponentName who, int userHandle); 42a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev 43599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setPasswordMinimumNumeric(in ComponentName who, int length, int userHandle); 44599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int getPasswordMinimumNumeric(in ComponentName who, int userHandle); 45a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev 46599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setPasswordMinimumSymbols(in ComponentName who, int length, int userHandle); 47599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int getPasswordMinimumSymbols(in ComponentName who, int userHandle); 48c857740f242169f2ca7fd42f0d1268661b399ad6Konstantin Lopyrev 49599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setPasswordMinimumNonLetter(in ComponentName who, int length, int userHandle); 50599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int getPasswordMinimumNonLetter(in ComponentName who, int userHandle); 51b8ec470617590fa2025db869e8e80dcce8eaec23Jim Miller 52599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setPasswordHistoryLength(in ComponentName who, int length, int userHandle); 53599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int getPasswordHistoryLength(in ComponentName who, int userHandle); 543255823de062e981f7bfc7994919207988697e45Konstantin Lopyrev 55599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setPasswordExpirationTimeout(in ComponentName who, long expiration, int userHandle); 56599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani long getPasswordExpirationTimeout(in ComponentName who, int userHandle); 57a4e28d181942018ba8759989799a28fa88764ce3Jim Miller 58599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani long getPasswordExpiration(in ComponentName who, int userHandle); 59a4e28d181942018ba8759989799a28fa88764ce3Jim Miller 60599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani boolean isActivePasswordSufficient(int userHandle); 61599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int getCurrentFailedPasswordAttempts(int userHandle); 62b8ec470617590fa2025db869e8e80dcce8eaec23Jim Miller 63599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setMaximumFailedPasswordsForWipe(in ComponentName admin, int num, int userHandle); 64599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int getMaximumFailedPasswordsForWipe(in ComponentName admin, int userHandle); 65b8ec470617590fa2025db869e8e80dcce8eaec23Jim Miller 66599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani boolean resetPassword(String password, int flags, int userHandle); 67b8ec470617590fa2025db869e8e80dcce8eaec23Jim Miller 68599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setMaximumTimeToLock(in ComponentName who, long timeMs, int userHandle); 69599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani long getMaximumTimeToLock(in ComponentName who, int userHandle); 70b8ec470617590fa2025db869e8e80dcce8eaec23Jim Miller 71df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn void lockNow(); 72b8ec470617590fa2025db869e8e80dcce8eaec23Jim Miller 73599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void wipeData(int flags, int userHandle); 7469238c6a37ae43c748ad9cd7613f2209149ee7daOscar Montemayor 75599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani ComponentName setGlobalProxy(in ComponentName admin, String proxySpec, String exclusionList, int userHandle); 76599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani ComponentName getGlobalProxyAdmin(int userHandle); 777b0f8f08ac7b3ed5cf462b92283713b033d6a64aAndy Stadler 78599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int setStorageEncryption(in ComponentName who, boolean encrypt, int userHandle); 79599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani boolean getStorageEncryption(in ComponentName who, int userHandle); 80599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int getStorageEncryptionStatus(int userHandle); 817b0f8f08ac7b3ed5cf462b92283713b033d6a64aAndy Stadler 82599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setCameraDisabled(in ComponentName who, boolean disabled, int userHandle); 83599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani boolean getCameraDisabled(in ComponentName who, int userHandle); 842447edd85baac3225a12b868ef40f76cfdc6ec11Ben Komalo 8548b9b0d068844af9eb37c215484831c4d6b831b0Jim Miller void setKeyguardDisabledFeatures(in ComponentName who, int which, int userHandle); 8648b9b0d068844af9eb37c215484831c4d6b831b0Jim Miller int getKeyguardDisabledFeatures(in ComponentName who, int userHandle); 87b8ec470617590fa2025db869e8e80dcce8eaec23Jim Miller 88599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void setActiveAdmin(in ComponentName policyReceiver, boolean refreshing, int userHandle); 89599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani boolean isAdminActive(in ComponentName policyReceiver, int userHandle); 90599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani List<ComponentName> getActiveAdmins(int userHandle); 91599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani boolean packageHasActiveAdmins(String packageName, int userHandle); 92599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void getRemoveWarning(in ComponentName policyReceiver, in RemoteCallback result, int userHandle); 93599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void removeActiveAdmin(in ComponentName policyReceiver, int userHandle); 94599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani boolean hasGrantedPolicy(in ComponentName policyReceiver, int usesPolicy, int userHandle); 95b8ec470617590fa2025db869e8e80dcce8eaec23Jim Miller 96c857740f242169f2ca7fd42f0d1268661b399ad6Konstantin Lopyrev void setActivePasswordState(int quality, int length, int letters, int uppercase, int lowercase, 97599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani int numbers, int symbols, int nonletter, int userHandle); 98599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void reportFailedPasswordAttempt(int userHandle); 99599dd7ce9adf8ca067cefb0b191a5ac20ec35a79Amith Yamasani void reportSuccessfulPasswordAttempt(int userHandle); 100d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn} 101