161847f8eSopenharmony_ci/* 261847f8eSopenharmony_ci * Copyright (c) 2021-2024 Huawei Device Co., Ltd. 361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 461847f8eSopenharmony_ci * you may not use this file except in compliance with the License. 561847f8eSopenharmony_ci * You may obtain a copy of the License at 661847f8eSopenharmony_ci * 761847f8eSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 861847f8eSopenharmony_ci * 961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and 1361847f8eSopenharmony_ci * limitations under the License. 1461847f8eSopenharmony_ci */ 1561847f8eSopenharmony_ci 1661847f8eSopenharmony_ci/** 1761847f8eSopenharmony_ci * @file 1861847f8eSopenharmony_ci * @kit AbilityKit 1961847f8eSopenharmony_ci */ 2061847f8eSopenharmony_ci 2161847f8eSopenharmony_ciimport { AsyncCallback, Callback } from './@ohos.base'; 2261847f8eSopenharmony_ciimport { Permissions } from './permissions'; 2361847f8eSopenharmony_ciimport type _Context from './application/Context'; 2461847f8eSopenharmony_ciimport type _PermissionRequestResult from './security/PermissionRequestResult'; 2561847f8eSopenharmony_ci 2661847f8eSopenharmony_ci/** 2761847f8eSopenharmony_ci * @namespace abilityAccessCtrl 2861847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 2961847f8eSopenharmony_ci * @since 8 3061847f8eSopenharmony_ci */ 3161847f8eSopenharmony_ci/** 3261847f8eSopenharmony_ci * @namespace abilityAccessCtrl 3361847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 3461847f8eSopenharmony_ci * @atomicservice 3561847f8eSopenharmony_ci * @since 11 3661847f8eSopenharmony_ci */ 3761847f8eSopenharmony_ci/** 3861847f8eSopenharmony_ci * @namespace abilityAccessCtrl 3961847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 4061847f8eSopenharmony_ci * @crossplatform 4161847f8eSopenharmony_ci * @atomicservice 4261847f8eSopenharmony_ci * @since 12 4361847f8eSopenharmony_ci */ 4461847f8eSopenharmony_cideclare namespace abilityAccessCtrl { 4561847f8eSopenharmony_ci /** 4661847f8eSopenharmony_ci * Obtains the AtManager instance. 4761847f8eSopenharmony_ci * 4861847f8eSopenharmony_ci * @returns { AtManager } Returns the instance of the AtManager. 4961847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 5061847f8eSopenharmony_ci * @since 8 5161847f8eSopenharmony_ci */ 5261847f8eSopenharmony_ci /** 5361847f8eSopenharmony_ci * Obtains the AtManager instance. 5461847f8eSopenharmony_ci * 5561847f8eSopenharmony_ci * @returns { AtManager } returns the instance of the AtManager. 5661847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 5761847f8eSopenharmony_ci * @crossplatform 5861847f8eSopenharmony_ci * @since 10 5961847f8eSopenharmony_ci */ 6061847f8eSopenharmony_ci /** 6161847f8eSopenharmony_ci * Obtains the AtManager instance. 6261847f8eSopenharmony_ci * 6361847f8eSopenharmony_ci * @returns { AtManager } returns the instance of the AtManager. 6461847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 6561847f8eSopenharmony_ci * @crossplatform 6661847f8eSopenharmony_ci * @atomicservice 6761847f8eSopenharmony_ci * @since 11 6861847f8eSopenharmony_ci */ 6961847f8eSopenharmony_ci function createAtManager(): AtManager; 7061847f8eSopenharmony_ci 7161847f8eSopenharmony_ci /** 7261847f8eSopenharmony_ci * Provides methods for managing access_token. 7361847f8eSopenharmony_ci * 7461847f8eSopenharmony_ci * @interface AtManager 7561847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 7661847f8eSopenharmony_ci * @since 8 7761847f8eSopenharmony_ci */ 7861847f8eSopenharmony_ci /** 7961847f8eSopenharmony_ci * Provides methods for managing access_token. 8061847f8eSopenharmony_ci * 8161847f8eSopenharmony_ci * @interface AtManager 8261847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 8361847f8eSopenharmony_ci * @atomicservice 8461847f8eSopenharmony_ci * @since 11 8561847f8eSopenharmony_ci */ 8661847f8eSopenharmony_ci interface AtManager { 8761847f8eSopenharmony_ci /** 8861847f8eSopenharmony_ci * Checks whether a specified application has been granted the given permission. 8961847f8eSopenharmony_ci * 9061847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 9161847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission to be verified. The Permissions type supports only valid permission names. 9261847f8eSopenharmony_ci * @returns { Promise<GrantStatus> } Returns permission verify result. 9361847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 9461847f8eSopenharmony_ci * @since 9 9561847f8eSopenharmony_ci */ 9661847f8eSopenharmony_ci verifyAccessToken(tokenID: number, permissionName: Permissions): Promise<GrantStatus>; 9761847f8eSopenharmony_ci 9861847f8eSopenharmony_ci /** 9961847f8eSopenharmony_ci * Checks whether a specified application has been granted the given permission. 10061847f8eSopenharmony_ci * 10161847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 10261847f8eSopenharmony_ci * @param { string } permissionName - Name of the permission to be verified. 10361847f8eSopenharmony_ci * @returns { Promise<GrantStatus> } Returns permission verify result. 10461847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 10561847f8eSopenharmony_ci * @since 8 10661847f8eSopenharmony_ci * @deprecated since 9 10761847f8eSopenharmony_ci * @useinstead ohos.abilityAccessCtrl.AtManager#checkAccessToken 10861847f8eSopenharmony_ci */ 10961847f8eSopenharmony_ci verifyAccessToken(tokenID: number, permissionName: string): Promise<GrantStatus>; 11061847f8eSopenharmony_ci 11161847f8eSopenharmony_ci /** 11261847f8eSopenharmony_ci * Checks whether a specified application has been granted the given permission synchronously. 11361847f8eSopenharmony_ci * 11461847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 11561847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission to be verified. 11661847f8eSopenharmony_ci * @returns { GrantStatus } Returns permission verify result. 11761847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 11861847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, or the permissionName exceeds 256 characters. 11961847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 12061847f8eSopenharmony_ci * @since 9 12161847f8eSopenharmony_ci */ 12261847f8eSopenharmony_ci verifyAccessTokenSync(tokenID: number, permissionName: Permissions): GrantStatus; 12361847f8eSopenharmony_ci 12461847f8eSopenharmony_ci /** 12561847f8eSopenharmony_ci * Checks whether a specified application has been granted the given permission. 12661847f8eSopenharmony_ci * 12761847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 12861847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission to be verified. 12961847f8eSopenharmony_ci * @returns { Promise<GrantStatus> } Returns permission verify result. 13061847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 13161847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, or the permissionName exceeds 256 characters. 13261847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 13361847f8eSopenharmony_ci * @since 9 13461847f8eSopenharmony_ci */ 13561847f8eSopenharmony_ci /** 13661847f8eSopenharmony_ci * Checks whether a specified application has been granted the given permission. 13761847f8eSopenharmony_ci * On the cross-platform, this function can be used to check the permission grant status for the current application only. 13861847f8eSopenharmony_ci * 13961847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 14061847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission to be verified. 14161847f8eSopenharmony_ci * @returns { Promise<GrantStatus> } Returns permission verify result. 14261847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 14361847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, or the permissionName exceeds 256 characters. 14461847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 14561847f8eSopenharmony_ci * @crossplatform 14661847f8eSopenharmony_ci * @since 10 14761847f8eSopenharmony_ci */ 14861847f8eSopenharmony_ci /** 14961847f8eSopenharmony_ci * Checks whether a specified application has been granted the given permission. 15061847f8eSopenharmony_ci * On the cross-platform, this function can be used to check the permission grant status for the current application only. 15161847f8eSopenharmony_ci * 15261847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 15361847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission to be verified. 15461847f8eSopenharmony_ci * @returns { Promise<GrantStatus> } Returns permission verify result. 15561847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 15661847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, or the permissionName exceeds 256 characters. 15761847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 15861847f8eSopenharmony_ci * @crossplatform 15961847f8eSopenharmony_ci * @atomicservice 16061847f8eSopenharmony_ci * @since 11 16161847f8eSopenharmony_ci */ 16261847f8eSopenharmony_ci checkAccessToken(tokenID: number, permissionName: Permissions): Promise<GrantStatus>; 16361847f8eSopenharmony_ci 16461847f8eSopenharmony_ci /** 16561847f8eSopenharmony_ci * Checks whether a specified application has been granted the given permission. 16661847f8eSopenharmony_ci * On the cross-platform, this function can be used to check the permission grant status for the current application only. 16761847f8eSopenharmony_ci * 16861847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 16961847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission to be verified. 17061847f8eSopenharmony_ci * @returns { GrantStatus } Returns permission verify result. 17161847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 17261847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, or the permissionName exceeds 256 characters. 17361847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 17461847f8eSopenharmony_ci * @crossplatform 17561847f8eSopenharmony_ci * @since 10 17661847f8eSopenharmony_ci */ 17761847f8eSopenharmony_ci /** 17861847f8eSopenharmony_ci * Checks whether a specified application has been granted the given permission. 17961847f8eSopenharmony_ci * On the cross-platform, this function can be used to check the permission grant status for the current application only. 18061847f8eSopenharmony_ci * 18161847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 18261847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission to be verified. 18361847f8eSopenharmony_ci * @returns { GrantStatus } Returns permission verify result. 18461847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 18561847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, or the permissionName exceeds 256 characters. 18661847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 18761847f8eSopenharmony_ci * @crossplatform 18861847f8eSopenharmony_ci * @atomicservice 18961847f8eSopenharmony_ci * @since 11 19061847f8eSopenharmony_ci */ 19161847f8eSopenharmony_ci checkAccessTokenSync(tokenID: number, permissionName: Permissions): GrantStatus; 19261847f8eSopenharmony_ci 19361847f8eSopenharmony_ci /** 19461847f8eSopenharmony_ci * Requests certain permissions from the user. 19561847f8eSopenharmony_ci * 19661847f8eSopenharmony_ci * @param { Context } context - The context that initiates the permission request. 19761847f8eSopenharmony_ci * <br> The context must belong to the Stage model and only supports UIAbilityContext and UIExtensionContext. 19861847f8eSopenharmony_ci * @param { Array<Permissions> } permissionList - Indicates the list of permissions to be requested. This parameter cannot be null or empty. 19961847f8eSopenharmony_ci * @param { AsyncCallback<PermissionRequestResult> } requestCallback Callback for the result from requesting permissions. 20061847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 20161847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The context is invalid when it does not belong to the application itself. 20261847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 20361847f8eSopenharmony_ci * @stagemodelonly 20461847f8eSopenharmony_ci * @since 9 20561847f8eSopenharmony_ci */ 20661847f8eSopenharmony_ci /** 20761847f8eSopenharmony_ci * Requests certain permissions from the user. 20861847f8eSopenharmony_ci * 20961847f8eSopenharmony_ci * @param { Context } context - The context that initiates the permission request. 21061847f8eSopenharmony_ci * <br> The context must belong to the Stage model and only supports UIAbilityContext and UIExtensionContext. 21161847f8eSopenharmony_ci * @param { Array<Permissions> } permissionList - Indicates the list of permissions to be requested. This parameter cannot be null or empty. 21261847f8eSopenharmony_ci * @param { AsyncCallback<PermissionRequestResult> } requestCallback Callback for the result from requesting permissions. 21361847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 21461847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The context is invalid when it does not belong to the application itself. 21561847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 21661847f8eSopenharmony_ci * @stagemodelonly 21761847f8eSopenharmony_ci * @crossplatform 21861847f8eSopenharmony_ci * @since 10 21961847f8eSopenharmony_ci */ 22061847f8eSopenharmony_ci /** 22161847f8eSopenharmony_ci * Requests certain permissions from the user. 22261847f8eSopenharmony_ci * 22361847f8eSopenharmony_ci * @param { Context } context - The context that initiates the permission request. 22461847f8eSopenharmony_ci * <br> The context must belong to the Stage model and only supports UIAbilityContext and UIExtensionContext. 22561847f8eSopenharmony_ci * @param { Array<Permissions> } permissionList - Indicates the list of permissions to be requested. This parameter cannot be null or empty. 22661847f8eSopenharmony_ci * @param { AsyncCallback<PermissionRequestResult> } requestCallback Callback for the result from requesting permissions. 22761847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 22861847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The context is invalid when it does not belong to the application itself. 22961847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 23061847f8eSopenharmony_ci * @stagemodelonly 23161847f8eSopenharmony_ci * @crossplatform 23261847f8eSopenharmony_ci * @atomicservice 23361847f8eSopenharmony_ci * @since 12 23461847f8eSopenharmony_ci */ 23561847f8eSopenharmony_ci requestPermissionsFromUser( 23661847f8eSopenharmony_ci context: Context, 23761847f8eSopenharmony_ci permissionList: Array<Permissions>, 23861847f8eSopenharmony_ci requestCallback: AsyncCallback<PermissionRequestResult> 23961847f8eSopenharmony_ci ): void; 24061847f8eSopenharmony_ci 24161847f8eSopenharmony_ci /** 24261847f8eSopenharmony_ci * Requests certain permissions from the user. 24361847f8eSopenharmony_ci * 24461847f8eSopenharmony_ci * @param { Context } context - The context that initiates the permission request. 24561847f8eSopenharmony_ci * <br> The context must belong to the Stage model and only supports UIAbilityContext and UIExtensionContext. 24661847f8eSopenharmony_ci * @param { Array<Permissions> } permissionList - Indicates the list of permissions to be requested. This parameter cannot be null or empty. 24761847f8eSopenharmony_ci * @returns { Promise<PermissionRequestResult> } Returns result of requesting permissions. 24861847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 24961847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The context is invalid when it does not belong to the application itself. 25061847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 25161847f8eSopenharmony_ci * @stagemodelonly 25261847f8eSopenharmony_ci * @since 9 25361847f8eSopenharmony_ci */ 25461847f8eSopenharmony_ci /** 25561847f8eSopenharmony_ci * Requests certain permissions from the user. 25661847f8eSopenharmony_ci * 25761847f8eSopenharmony_ci * @param { Context } context - The context that initiates the permission request. 25861847f8eSopenharmony_ci * <br> The context must belong to the Stage model and only supports UIAbilityContext and UIExtensionContext. 25961847f8eSopenharmony_ci * @param { Array<Permissions> } permissionList - Indicates the list of permissions to be requested. This parameter cannot be null or empty. 26061847f8eSopenharmony_ci * @returns { Promise<PermissionRequestResult> } Returns result of requesting permissions. 26161847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 26261847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The context is invalid when it does not belong to the application itself. 26361847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 26461847f8eSopenharmony_ci * @stagemodelonly 26561847f8eSopenharmony_ci * @crossplatform 26661847f8eSopenharmony_ci * @since 10 26761847f8eSopenharmony_ci */ 26861847f8eSopenharmony_ci /** 26961847f8eSopenharmony_ci * Requests certain permissions from the user. 27061847f8eSopenharmony_ci * 27161847f8eSopenharmony_ci * @param { Context } context - The context that initiates the permission request. 27261847f8eSopenharmony_ci * <br> The context must belong to the Stage model and only supports UIAbilityContext and UIExtensionContext. 27361847f8eSopenharmony_ci * @param { Array<Permissions> } permissionList - Indicates the list of permissions to be requested. This parameter cannot be null or empty. 27461847f8eSopenharmony_ci * @returns { Promise<PermissionRequestResult> } Returns result of requesting permissions. 27561847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 27661847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The context is invalid when it does not belong to the application itself. 27761847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 27861847f8eSopenharmony_ci * @stagemodelonly 27961847f8eSopenharmony_ci * @crossplatform 28061847f8eSopenharmony_ci * @atomicservice 28161847f8eSopenharmony_ci * @since 11 28261847f8eSopenharmony_ci */ 28361847f8eSopenharmony_ci requestPermissionsFromUser(context: Context, permissionList: Array<Permissions>): Promise<PermissionRequestResult>; 28461847f8eSopenharmony_ci 28561847f8eSopenharmony_ci /** 28661847f8eSopenharmony_ci * Grants a specified user_grant permission to the given application. 28761847f8eSopenharmony_ci * 28861847f8eSopenharmony_ci * @permission ohos.permission.GRANT_SENSITIVE_PERMISSIONS 28961847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 29061847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission to be granted. 29161847f8eSopenharmony_ci * @param { number } permissionFlags - Flags of permission state. This parameter can be 1 or 2 or 64. 29261847f8eSopenharmony_ci * @returns { Promise<void> } The promise returned by the function. 29361847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 29461847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.GRANT_SENSITIVE_PERMISSIONS". 29561847f8eSopenharmony_ci * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app. 29661847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, the permissionName exceeds 256 characters, or the flags value is invalid. 29761847f8eSopenharmony_ci * @throws { BusinessError } 12100002 - The specified tokenID does not exist. 29861847f8eSopenharmony_ci * @throws { BusinessError } 12100003 - The specified permission does not exist. 29961847f8eSopenharmony_ci * @throws { BusinessError } 12100006 - The application specified by the tokenID is not allowed to be granted with the specified permission. 30061847f8eSopenharmony_ci * Either the application is a sandbox or the tokenID is from a remote device. 30161847f8eSopenharmony_ci * @throws { BusinessError } 12100007 - The service is abnormal. 30261847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 30361847f8eSopenharmony_ci * @systemapi 30461847f8eSopenharmony_ci * @since 8 30561847f8eSopenharmony_ci */ 30661847f8eSopenharmony_ci grantUserGrantedPermission(tokenID: number, permissionName: Permissions, permissionFlags: number): Promise<void>; 30761847f8eSopenharmony_ci 30861847f8eSopenharmony_ci /** 30961847f8eSopenharmony_ci * Grants a specified user_grant permission to the given application. 31061847f8eSopenharmony_ci * 31161847f8eSopenharmony_ci * @permission ohos.permission.GRANT_SENSITIVE_PERMISSIONS 31261847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 31361847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission to be granted. 31461847f8eSopenharmony_ci * @param { number } permissionFlags - Flags of permission state. This parameter can be 1 or 2 or 64. 31561847f8eSopenharmony_ci * @param { AsyncCallback<void> } callback - Asynchronous callback interface. 31661847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 31761847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.GRANT_SENSITIVE_PERMISSIONS". 31861847f8eSopenharmony_ci * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app. 31961847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, the permissionName exceeds 256 characters, or the flags value is invalid. 32061847f8eSopenharmony_ci * @throws { BusinessError } 12100002 - The specified tokenID does not exist. 32161847f8eSopenharmony_ci * @throws { BusinessError } 12100003 - The specified permission does not exist. 32261847f8eSopenharmony_ci * @throws { BusinessError } 12100006 - The application specified by the tokenID is not allowed to be granted with the specified permission. 32361847f8eSopenharmony_ci * Either the application is a sandbox or the tokenID is from a remote device. 32461847f8eSopenharmony_ci * @throws { BusinessError } 12100007 - The service is abnormal. 32561847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 32661847f8eSopenharmony_ci * @systemapi 32761847f8eSopenharmony_ci * @since 8 32861847f8eSopenharmony_ci */ 32961847f8eSopenharmony_ci grantUserGrantedPermission( 33061847f8eSopenharmony_ci tokenID: number, 33161847f8eSopenharmony_ci permissionName: Permissions, 33261847f8eSopenharmony_ci permissionFlags: number, 33361847f8eSopenharmony_ci callback: AsyncCallback<void> 33461847f8eSopenharmony_ci ): void; 33561847f8eSopenharmony_ci 33661847f8eSopenharmony_ci /** 33761847f8eSopenharmony_ci * Revoke a specified user_grant permission to the given application. 33861847f8eSopenharmony_ci * 33961847f8eSopenharmony_ci * @permission ohos.permission.REVOKE_SENSITIVE_PERMISSIONS 34061847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 34161847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission to be revoked. 34261847f8eSopenharmony_ci * @param { number } permissionFlags - Flags of permission state. This parameter can be 1 or 2 or 64. 34361847f8eSopenharmony_ci * @returns { Promise<void> } The promise returned by the function. 34461847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 34561847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS". 34661847f8eSopenharmony_ci * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app. 34761847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, the permissionName exceeds 256 characters, or the flags value is invalid. 34861847f8eSopenharmony_ci * @throws { BusinessError } 12100002 - The specified tokenID does not exist. 34961847f8eSopenharmony_ci * @throws { BusinessError } 12100003 - The specified permission does not exist. 35061847f8eSopenharmony_ci * @throws { BusinessError } 12100006 - The application specified by the tokenID is not allowed to be revoked with the specified permission. 35161847f8eSopenharmony_ci * Either the application is a sandbox or the tokenID is from a remote device. 35261847f8eSopenharmony_ci * @throws { BusinessError } 12100007 - The service is abnormal. 35361847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 35461847f8eSopenharmony_ci * @systemapi 35561847f8eSopenharmony_ci * @since 8 35661847f8eSopenharmony_ci */ 35761847f8eSopenharmony_ci revokeUserGrantedPermission(tokenID: number, permissionName: Permissions, permissionFlags: number): Promise<void>; 35861847f8eSopenharmony_ci 35961847f8eSopenharmony_ci /** 36061847f8eSopenharmony_ci * Revoke a specified user_grant permission to the given application. 36161847f8eSopenharmony_ci * 36261847f8eSopenharmony_ci * @permission ohos.permission.REVOKE_SENSITIVE_PERMISSIONS 36361847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 36461847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission to be revoked. 36561847f8eSopenharmony_ci * @param { number } permissionFlags - Flags of permission state. This parameter can be 1 or 2 or 64. 36661847f8eSopenharmony_ci * @param { AsyncCallback<void> } callback - Asynchronous callback interface. 36761847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 36861847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS". 36961847f8eSopenharmony_ci * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app. 37061847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, the permissionName exceeds 256 characters, or the flags value is invalid. 37161847f8eSopenharmony_ci * @throws { BusinessError } 12100002 - The specified tokenID does not exist. 37261847f8eSopenharmony_ci * @throws { BusinessError } 12100003 - The specified permission does not exist. 37361847f8eSopenharmony_ci * @throws { BusinessError } 12100006 - The application specified by the tokenID is not allowed to be revoked with the specified permission. 37461847f8eSopenharmony_ci * Either the application is a sandbox or the tokenID is from a remote device. 37561847f8eSopenharmony_ci * @throws { BusinessError } 12100007 - The service is abnormal. 37661847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 37761847f8eSopenharmony_ci * @systemapi 37861847f8eSopenharmony_ci * @since 8 37961847f8eSopenharmony_ci */ 38061847f8eSopenharmony_ci revokeUserGrantedPermission( 38161847f8eSopenharmony_ci tokenID: number, 38261847f8eSopenharmony_ci permissionName: Permissions, 38361847f8eSopenharmony_ci permissionFlags: number, 38461847f8eSopenharmony_ci callback: AsyncCallback<void> 38561847f8eSopenharmony_ci ): void; 38661847f8eSopenharmony_ci 38761847f8eSopenharmony_ci /** 38861847f8eSopenharmony_ci * Queries specified permission flags of the given application. 38961847f8eSopenharmony_ci * 39061847f8eSopenharmony_ci * @permission ohos.permission.GET_SENSITIVE_PERMISSIONS or ohos.permission.GRANT_SENSITIVE_PERMISSIONS or ohos.permission.REVOKE_SENSITIVE_PERMISSIONS 39161847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 39261847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission to be get. 39361847f8eSopenharmony_ci * @returns { Promise<number> } Return permission flags. 39461847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 39561847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission specified below. 39661847f8eSopenharmony_ci * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app. 39761847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, or the permissionName exceeds 256 characters. 39861847f8eSopenharmony_ci * @throws { BusinessError } 12100002 - The specified tokenID does not exist. 39961847f8eSopenharmony_ci * @throws { BusinessError } 12100003 - The specified permission does not exist. 40061847f8eSopenharmony_ci * @throws { BusinessError } 12100006 - The operation is not allowed. Either the application is a sandbox or the tokenID is from a remote device. 40161847f8eSopenharmony_ci * @throws { BusinessError } 12100007 - The service is abnormal. 40261847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 40361847f8eSopenharmony_ci * @systemapi 40461847f8eSopenharmony_ci * @since 8 40561847f8eSopenharmony_ci */ 40661847f8eSopenharmony_ci getPermissionFlags(tokenID: number, permissionName: Permissions): Promise<number>; 40761847f8eSopenharmony_ci 40861847f8eSopenharmony_ci /** 40961847f8eSopenharmony_ci * Set the toggle status of one permission flag. 41061847f8eSopenharmony_ci * 41161847f8eSopenharmony_ci * @permission ohos.permission.DISABLE_PERMISSION_DIALOG 41261847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission associated with the toggle status to be set. 41361847f8eSopenharmony_ci * @param { PermissionRequestToggleStatus } status - The toggle status to be set. 41461847f8eSopenharmony_ci * @returns { Promise<void> } The promise returned by the function. 41561847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 41661847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission specified below. 41761847f8eSopenharmony_ci * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app. 41861847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The permissionName exceeds 256 characters, or the status value is invalid. 41961847f8eSopenharmony_ci * @throws { BusinessError } 12100003 - The specified permission does not exist. 42061847f8eSopenharmony_ci * @throws { BusinessError } 12100007 - The service is abnormal. 42161847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 42261847f8eSopenharmony_ci * @systemapi 42361847f8eSopenharmony_ci * @since 12 42461847f8eSopenharmony_ci */ 42561847f8eSopenharmony_ci setPermissionRequestToggleStatus(permissionName: Permissions, status: PermissionRequestToggleStatus): Promise<void>; 42661847f8eSopenharmony_ci 42761847f8eSopenharmony_ci /** 42861847f8eSopenharmony_ci * Get the toggle status of one permission flag. 42961847f8eSopenharmony_ci * 43061847f8eSopenharmony_ci * @permission ohos.permission.GET_SENSITIVE_PERMISSIONS 43161847f8eSopenharmony_ci * @param { Permissions } permissionName - Name of the permission associated with the toggle status to be get. 43261847f8eSopenharmony_ci * @returns { Promise<PermissionRequestToggleStatus> } Return the toggle status. 43361847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 43461847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission specified below. 43561847f8eSopenharmony_ci * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app. 43661847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The permissionName exceeds 256 characters. 43761847f8eSopenharmony_ci * @throws { BusinessError } 12100003 - The specified permission does not exist. 43861847f8eSopenharmony_ci * @throws { BusinessError } 12100007 - The service is abnormal. 43961847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 44061847f8eSopenharmony_ci * @systemapi 44161847f8eSopenharmony_ci * @since 12 44261847f8eSopenharmony_ci */ 44361847f8eSopenharmony_ci getPermissionRequestToggleStatus(permissionName: Permissions): Promise<PermissionRequestToggleStatus>; 44461847f8eSopenharmony_ci 44561847f8eSopenharmony_ci /** 44661847f8eSopenharmony_ci * Queries permission management version. 44761847f8eSopenharmony_ci * 44861847f8eSopenharmony_ci * @returns { Promise<number> } Return permission version. 44961847f8eSopenharmony_ci * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app. 45061847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 45161847f8eSopenharmony_ci * @systemapi 45261847f8eSopenharmony_ci * @since 9 45361847f8eSopenharmony_ci */ 45461847f8eSopenharmony_ci getVersion(): Promise<number>; 45561847f8eSopenharmony_ci 45661847f8eSopenharmony_ci /** 45761847f8eSopenharmony_ci * Queries permissions status of the given application. 45861847f8eSopenharmony_ci * 45961847f8eSopenharmony_ci * @permission ohos.permission.GET_SENSITIVE_PERMISSIONS 46061847f8eSopenharmony_ci * @param { number } tokenID - Token ID of the application. 46161847f8eSopenharmony_ci * @param { Array<Permissions> } permissionList - Indicates the list of permissions to be queried. This parameter cannot be null or empty. 46261847f8eSopenharmony_ci * @returns { Promise<Array<PermissionStatus>> } Return permission status. 46361847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 46461847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.GET_SENSITIVE_PERMISSIONS". 46561847f8eSopenharmony_ci * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app. 46661847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, or the permissionList is empty. 46761847f8eSopenharmony_ci * @throws { BusinessError } 12100002 - The specified tokenID does not exist. 46861847f8eSopenharmony_ci * @throws { BusinessError } 12100007 - The service is abnormal. 46961847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 47061847f8eSopenharmony_ci * @systemapi 47161847f8eSopenharmony_ci * @since 12 47261847f8eSopenharmony_ci */ 47361847f8eSopenharmony_ci getPermissionsStatus(tokenID: number, permissionList: Array<Permissions>): Promise<Array<PermissionStatus>>; 47461847f8eSopenharmony_ci 47561847f8eSopenharmony_ci /** 47661847f8eSopenharmony_ci * Registers a permission state callback so that the application can be notified upon specified permission state of specified applications changes. 47761847f8eSopenharmony_ci * 47861847f8eSopenharmony_ci * @permission ohos.permission.GET_SENSITIVE_PERMISSIONS 47961847f8eSopenharmony_ci * @param { 'permissionStateChange' } type - Event type. 48061847f8eSopenharmony_ci * @param { Array<number> } tokenIDList - A list of permissions that specify the permissions to be listened on. The value in the list can be: 48161847f8eSopenharmony_ci * <br> {@code empty} - Indicates that the application can be notified if the specified permission state of any applications changes. 48261847f8eSopenharmony_ci * <br> {@code non-empty} - Indicates that the application can only be notified if the specified permission state of the specified applications change. 48361847f8eSopenharmony_ci * @param { Array<Permissions> } permissionList - A list of permissions that specify the permissions to be listened on. The value in the list can be: 48461847f8eSopenharmony_ci * <br> {@code empty} - Indicates that the application can be notified if any permission state of the specified applications changes. 48561847f8eSopenharmony_ci * <br> {@code non-empty} - Indicates that the application can only be notified if the specified permission state of the specified applications changes. 48661847f8eSopenharmony_ci * @param { Callback<PermissionStateChangeInfo> } callback - Callback for the result from registering permissions. 48761847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 48861847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.GET_SENSITIVE_PERMISSIONS". 48961847f8eSopenharmony_ci * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app. 49061847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenID is 0, or the permissionName exceeds 256 characters. 49161847f8eSopenharmony_ci * @throws { BusinessError } 12100004 - The API is used repeatedly with the same input. 49261847f8eSopenharmony_ci * @throws { BusinessError } 12100005 - The registration time has exceeded the limitation. 49361847f8eSopenharmony_ci * @throws { BusinessError } 12100007 - The service is abnormal. 49461847f8eSopenharmony_ci * @throws { BusinessError } 12100008 - Out of memory. 49561847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 49661847f8eSopenharmony_ci * @systemapi 49761847f8eSopenharmony_ci * @since 9 49861847f8eSopenharmony_ci */ 49961847f8eSopenharmony_ci on( 50061847f8eSopenharmony_ci type: 'permissionStateChange', 50161847f8eSopenharmony_ci tokenIDList: Array<number>, 50261847f8eSopenharmony_ci permissionList: Array<Permissions>, 50361847f8eSopenharmony_ci callback: Callback<PermissionStateChangeInfo> 50461847f8eSopenharmony_ci ): void; 50561847f8eSopenharmony_ci 50661847f8eSopenharmony_ci /** 50761847f8eSopenharmony_ci * Unregisters a permission state callback so that the specified applications cannot be notified upon specified permissions state changes anymore. 50861847f8eSopenharmony_ci * 50961847f8eSopenharmony_ci * @permission ohos.permission.GET_SENSITIVE_PERMISSIONS 51061847f8eSopenharmony_ci * @param { 'permissionStateChange' } type - Event type. 51161847f8eSopenharmony_ci * @param { Array<number> } tokenIDList - A list of permissions that specify the permissions to be listened on. 51261847f8eSopenharmony_ci * It should correspond to the value registered by function of "on", whose type is "permissionStateChange". 51361847f8eSopenharmony_ci * @param { Array<Permissions> } permissionList - A list of permissions that specify the permissions to be listened on. 51461847f8eSopenharmony_ci * It should correspond to the value registered by function of "on", whose type is "permissionStateChange". 51561847f8eSopenharmony_ci * @param { Callback<PermissionStateChangeInfo> } callback - Callback for the result from unregistering permissions. 51661847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1.Mandatory parameters are left unspecified; 2.Incorrect parameter types. 51761847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission denied. Interface caller does not have permission "ohos.permission.GET_SENSITIVE_PERMISSIONS". 51861847f8eSopenharmony_ci * @throws { BusinessError } 202 - Not System App. Interface caller is not a system app. 51961847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. The tokenIDs or permissionNames in the list are all invalid. 52061847f8eSopenharmony_ci * @throws { BusinessError } 12100004 - The API is not used in pair with 'on'. 52161847f8eSopenharmony_ci * @throws { BusinessError } 12100007 - The service is abnormal. 52261847f8eSopenharmony_ci * @throws { BusinessError } 12100008 - Out of memory. 52361847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 52461847f8eSopenharmony_ci * @systemapi 52561847f8eSopenharmony_ci * @since 9 52661847f8eSopenharmony_ci */ 52761847f8eSopenharmony_ci off( 52861847f8eSopenharmony_ci type: 'permissionStateChange', 52961847f8eSopenharmony_ci tokenIDList: Array<number>, 53061847f8eSopenharmony_ci permissionList: Array<Permissions>, 53161847f8eSopenharmony_ci callback?: Callback<PermissionStateChangeInfo> 53261847f8eSopenharmony_ci ): void; 53361847f8eSopenharmony_ci 53461847f8eSopenharmony_ci /** 53561847f8eSopenharmony_ci * Requests certain permissions on setting from the user. 53661847f8eSopenharmony_ci * 53761847f8eSopenharmony_ci * @param { Context } context - The context that initiates the permission request. 53861847f8eSopenharmony_ci * <br> The context must belong to the Stage model and only supports UIAbilityContext and UIExtensionContext. 53961847f8eSopenharmony_ci * @param { Array<Permissions> } permissionList - Indicates the list of permission to be requested. This parameter cannot be null or empty. 54061847f8eSopenharmony_ci * @returns { Promise<Array<GrantStatus>> } Returns the list of status of the specified permission. 54161847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. 54261847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. Possible causes: 1. The context is invalid because it does not belong to the application itself; 54361847f8eSopenharmony_ci * 2. The permission list contains the permission that is not declared in the module.json file; 3. The permission list is invalid because the permissions in it do not belong to the same permission group. 54461847f8eSopenharmony_ci * @throws { BusinessError } 12100010 - The request already exists. 54561847f8eSopenharmony_ci * @throws { BusinessError } 12100011 - All permissions in the permission list have been granted. 54661847f8eSopenharmony_ci * @throws { BusinessError } 12100012 - The permission list contains the permission that has not been revoked by the user. 54761847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 54861847f8eSopenharmony_ci * @stagemodelonly 54961847f8eSopenharmony_ci * @atomicservice 55061847f8eSopenharmony_ci * @since 12 55161847f8eSopenharmony_ci */ 55261847f8eSopenharmony_ci requestPermissionOnSetting(context: Context, permissionList: Array<Permissions>): Promise<Array<GrantStatus>>; 55361847f8eSopenharmony_ci 55461847f8eSopenharmony_ci /** 55561847f8eSopenharmony_ci * Requests certain global switch status on setting from the user. 55661847f8eSopenharmony_ci * 55761847f8eSopenharmony_ci * @param { Context } context - The context that initiates the permission request. 55861847f8eSopenharmony_ci * <br> The context must belong to the Stage model and only supports UIAbilityContext and UIExtensionContext. 55961847f8eSopenharmony_ci * @param { SwitchType } type - Indicates the type of global switch to be requested. This parameter cannot be null or empty. 56061847f8eSopenharmony_ci * @returns { Promise<boolean> } Returns the status of the specified global switch. 56161847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. 56261847f8eSopenharmony_ci * @throws { BusinessError } 12100001 - Invalid parameter. Possible causes: 1. The context is invalid because it does not belong to the application itself; 2. The type of global switch is not support. 56361847f8eSopenharmony_ci * @throws { BusinessError } 12100010 - The request already exists. 56461847f8eSopenharmony_ci * @throws { BusinessError } 12100013 - The specific global switch is already open. 56561847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 56661847f8eSopenharmony_ci * @stagemodelonly 56761847f8eSopenharmony_ci * @atomicservice 56861847f8eSopenharmony_ci * @since 12 56961847f8eSopenharmony_ci */ 57061847f8eSopenharmony_ci requestGlobalSwitch(context: Context, type: SwitchType): Promise<boolean>; 57161847f8eSopenharmony_ci } 57261847f8eSopenharmony_ci 57361847f8eSopenharmony_ci /** 57461847f8eSopenharmony_ci * GrantStatus. 57561847f8eSopenharmony_ci * 57661847f8eSopenharmony_ci * @enum { number } 57761847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 57861847f8eSopenharmony_ci * @since 8 57961847f8eSopenharmony_ci */ 58061847f8eSopenharmony_ci /** 58161847f8eSopenharmony_ci * GrantStatus. 58261847f8eSopenharmony_ci * 58361847f8eSopenharmony_ci * @enum { number } 58461847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 58561847f8eSopenharmony_ci * @crossplatform 58661847f8eSopenharmony_ci * @since 10 58761847f8eSopenharmony_ci */ 58861847f8eSopenharmony_ci /** 58961847f8eSopenharmony_ci * GrantStatus. 59061847f8eSopenharmony_ci * 59161847f8eSopenharmony_ci * @enum { number } 59261847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 59361847f8eSopenharmony_ci * @crossplatform 59461847f8eSopenharmony_ci * @atomicservice 59561847f8eSopenharmony_ci * @since 11 59661847f8eSopenharmony_ci */ 59761847f8eSopenharmony_ci export enum GrantStatus { 59861847f8eSopenharmony_ci /** 59961847f8eSopenharmony_ci * access_token permission check fail 60061847f8eSopenharmony_ci * 60161847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 60261847f8eSopenharmony_ci * @since 8 60361847f8eSopenharmony_ci */ 60461847f8eSopenharmony_ci /** 60561847f8eSopenharmony_ci * access_token permission check fail 60661847f8eSopenharmony_ci * 60761847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 60861847f8eSopenharmony_ci * @crossplatform 60961847f8eSopenharmony_ci * @since 10 61061847f8eSopenharmony_ci */ 61161847f8eSopenharmony_ci /** 61261847f8eSopenharmony_ci * access_token permission check fail 61361847f8eSopenharmony_ci * 61461847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 61561847f8eSopenharmony_ci * @crossplatform 61661847f8eSopenharmony_ci * @atomicservice 61761847f8eSopenharmony_ci * @since 11 61861847f8eSopenharmony_ci */ 61961847f8eSopenharmony_ci PERMISSION_DENIED = -1, 62061847f8eSopenharmony_ci /** 62161847f8eSopenharmony_ci * access_token permission check success 62261847f8eSopenharmony_ci * 62361847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 62461847f8eSopenharmony_ci * @since 8 62561847f8eSopenharmony_ci */ 62661847f8eSopenharmony_ci /** 62761847f8eSopenharmony_ci * access_token permission check success 62861847f8eSopenharmony_ci * 62961847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 63061847f8eSopenharmony_ci * @crossplatform 63161847f8eSopenharmony_ci * @since 10 63261847f8eSopenharmony_ci */ 63361847f8eSopenharmony_ci /** 63461847f8eSopenharmony_ci * access_token permission check success 63561847f8eSopenharmony_ci * 63661847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 63761847f8eSopenharmony_ci * @crossplatform 63861847f8eSopenharmony_ci * @atomicservice 63961847f8eSopenharmony_ci * @since 11 64061847f8eSopenharmony_ci */ 64161847f8eSopenharmony_ci PERMISSION_GRANTED = 0 64261847f8eSopenharmony_ci } 64361847f8eSopenharmony_ci 64461847f8eSopenharmony_ci /** 64561847f8eSopenharmony_ci * Enum for permission state change type. 64661847f8eSopenharmony_ci * 64761847f8eSopenharmony_ci * @enum { number } 64861847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 64961847f8eSopenharmony_ci * @systemapi 65061847f8eSopenharmony_ci * @since 9 65161847f8eSopenharmony_ci */ 65261847f8eSopenharmony_ci export enum PermissionStateChangeType { 65361847f8eSopenharmony_ci /** 65461847f8eSopenharmony_ci * A granted user_grant permission is revoked. 65561847f8eSopenharmony_ci * 65661847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 65761847f8eSopenharmony_ci * @systemapi 65861847f8eSopenharmony_ci * @since 9 65961847f8eSopenharmony_ci */ 66061847f8eSopenharmony_ci PERMISSION_REVOKED_OPER = 0, 66161847f8eSopenharmony_ci /** 66261847f8eSopenharmony_ci * A user_grant permission is granted. 66361847f8eSopenharmony_ci * 66461847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 66561847f8eSopenharmony_ci * @systemapi 66661847f8eSopenharmony_ci * @since 9 66761847f8eSopenharmony_ci */ 66861847f8eSopenharmony_ci PERMISSION_GRANTED_OPER = 1 66961847f8eSopenharmony_ci } 67061847f8eSopenharmony_ci 67161847f8eSopenharmony_ci /** 67261847f8eSopenharmony_ci * Enum for permission request toggle status. 67361847f8eSopenharmony_ci * 67461847f8eSopenharmony_ci * @enum { number } 67561847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 67661847f8eSopenharmony_ci * @systemapi 67761847f8eSopenharmony_ci * @since 12 67861847f8eSopenharmony_ci */ 67961847f8eSopenharmony_ci export enum PermissionRequestToggleStatus { 68061847f8eSopenharmony_ci /** 68161847f8eSopenharmony_ci * The toggle status of one permission flag is closed. 68261847f8eSopenharmony_ci * 68361847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 68461847f8eSopenharmony_ci * @systemapi 68561847f8eSopenharmony_ci * @since 12 68661847f8eSopenharmony_ci */ 68761847f8eSopenharmony_ci CLOSED = 0, 68861847f8eSopenharmony_ci /** 68961847f8eSopenharmony_ci * The toggle status of one permission flag is open. 69061847f8eSopenharmony_ci * 69161847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 69261847f8eSopenharmony_ci * @systemapi 69361847f8eSopenharmony_ci * @since 12 69461847f8eSopenharmony_ci */ 69561847f8eSopenharmony_ci OPEN = 1, 69661847f8eSopenharmony_ci } 69761847f8eSopenharmony_ci 69861847f8eSopenharmony_ci /** 69961847f8eSopenharmony_ci * Indicates the information of permission state change. 70061847f8eSopenharmony_ci * 70161847f8eSopenharmony_ci * @interface PermissionStateChangeInfo 70261847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 70361847f8eSopenharmony_ci * @systemapi 70461847f8eSopenharmony_ci * @since 9 70561847f8eSopenharmony_ci * @name PermissionStateChangeInfo 70661847f8eSopenharmony_ci */ 70761847f8eSopenharmony_ci interface PermissionStateChangeInfo { 70861847f8eSopenharmony_ci /** 70961847f8eSopenharmony_ci * Indicates the permission state change type. 71061847f8eSopenharmony_ci * 71161847f8eSopenharmony_ci * @type { PermissionStateChangeType } 71261847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 71361847f8eSopenharmony_ci * @systemapi 71461847f8eSopenharmony_ci * @since 9 71561847f8eSopenharmony_ci */ 71661847f8eSopenharmony_ci change: PermissionStateChangeType; 71761847f8eSopenharmony_ci 71861847f8eSopenharmony_ci /** 71961847f8eSopenharmony_ci * Indicates the application whose permission state has been changed. 72061847f8eSopenharmony_ci * 72161847f8eSopenharmony_ci * @type { number } 72261847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 72361847f8eSopenharmony_ci * @systemapi 72461847f8eSopenharmony_ci * @since 9 72561847f8eSopenharmony_ci */ 72661847f8eSopenharmony_ci tokenID: number; 72761847f8eSopenharmony_ci 72861847f8eSopenharmony_ci /** 72961847f8eSopenharmony_ci * Indicates the permission whose state has been changed. 73061847f8eSopenharmony_ci * 73161847f8eSopenharmony_ci * @type { Permissions } 73261847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 73361847f8eSopenharmony_ci * @systemapi 73461847f8eSopenharmony_ci * @since 9 73561847f8eSopenharmony_ci */ 73661847f8eSopenharmony_ci permissionName: Permissions; 73761847f8eSopenharmony_ci } 73861847f8eSopenharmony_ci 73961847f8eSopenharmony_ci /** 74061847f8eSopenharmony_ci * PermissionStatus. 74161847f8eSopenharmony_ci * 74261847f8eSopenharmony_ci * @enum { number } 74361847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 74461847f8eSopenharmony_ci * @systemapi 74561847f8eSopenharmony_ci * @since 12 74661847f8eSopenharmony_ci */ 74761847f8eSopenharmony_ci export enum PermissionStatus { 74861847f8eSopenharmony_ci /** 74961847f8eSopenharmony_ci * permission has been denied, only can change it in settings 75061847f8eSopenharmony_ci * 75161847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 75261847f8eSopenharmony_ci * @systemapi 75361847f8eSopenharmony_ci * @since 12 75461847f8eSopenharmony_ci */ 75561847f8eSopenharmony_ci DENIED = -1, 75661847f8eSopenharmony_ci /** 75761847f8eSopenharmony_ci * permission has been granted 75861847f8eSopenharmony_ci * 75961847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 76061847f8eSopenharmony_ci * @systemapi 76161847f8eSopenharmony_ci * @since 12 76261847f8eSopenharmony_ci */ 76361847f8eSopenharmony_ci GRANTED = 0, 76461847f8eSopenharmony_ci /** 76561847f8eSopenharmony_ci * permission is not determined 76661847f8eSopenharmony_ci * 76761847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 76861847f8eSopenharmony_ci * @systemapi 76961847f8eSopenharmony_ci * @since 12 77061847f8eSopenharmony_ci */ 77161847f8eSopenharmony_ci NOT_DETERMINED = 1, 77261847f8eSopenharmony_ci /** 77361847f8eSopenharmony_ci * permission is invalid 77461847f8eSopenharmony_ci * 77561847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 77661847f8eSopenharmony_ci * @systemapi 77761847f8eSopenharmony_ci * @since 12 77861847f8eSopenharmony_ci */ 77961847f8eSopenharmony_ci INVALID = 2, 78061847f8eSopenharmony_ci /** 78161847f8eSopenharmony_ci * permission has been restricted 78261847f8eSopenharmony_ci * 78361847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 78461847f8eSopenharmony_ci * @systemapi 78561847f8eSopenharmony_ci * @since 12 78661847f8eSopenharmony_ci */ 78761847f8eSopenharmony_ci RESTRICTED = 3 78861847f8eSopenharmony_ci } 78961847f8eSopenharmony_ci 79061847f8eSopenharmony_ci /** 79161847f8eSopenharmony_ci * SwitchType. 79261847f8eSopenharmony_ci * 79361847f8eSopenharmony_ci * @enum { number } 79461847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 79561847f8eSopenharmony_ci * @atomicservice 79661847f8eSopenharmony_ci * @since 12 79761847f8eSopenharmony_ci */ 79861847f8eSopenharmony_ci export enum SwitchType { 79961847f8eSopenharmony_ci /** 80061847f8eSopenharmony_ci * switch of camera 80161847f8eSopenharmony_ci * 80261847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 80361847f8eSopenharmony_ci * @atomicservice 80461847f8eSopenharmony_ci * @since 12 80561847f8eSopenharmony_ci */ 80661847f8eSopenharmony_ci CAMERA = 0, 80761847f8eSopenharmony_ci /** 80861847f8eSopenharmony_ci * switch of microphone 80961847f8eSopenharmony_ci * 81061847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 81161847f8eSopenharmony_ci * @atomicservice 81261847f8eSopenharmony_ci * @since 12 81361847f8eSopenharmony_ci */ 81461847f8eSopenharmony_ci MICROPHONE = 1, 81561847f8eSopenharmony_ci /** 81661847f8eSopenharmony_ci * switch of location 81761847f8eSopenharmony_ci * 81861847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 81961847f8eSopenharmony_ci * @atomicservice 82061847f8eSopenharmony_ci * @since 12 82161847f8eSopenharmony_ci */ 82261847f8eSopenharmony_ci LOCATION = 2, 82361847f8eSopenharmony_ci } 82461847f8eSopenharmony_ci} 82561847f8eSopenharmony_ci 82661847f8eSopenharmony_ciexport default abilityAccessCtrl; 82761847f8eSopenharmony_ciexport { Permissions }; 82861847f8eSopenharmony_ci/** 82961847f8eSopenharmony_ci * PermissionRequestResult interface. 83061847f8eSopenharmony_ci * 83161847f8eSopenharmony_ci * @typedef { _PermissionRequestResult } 83261847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 83361847f8eSopenharmony_ci * @stagemodelonly 83461847f8eSopenharmony_ci * @crossplatform 83561847f8eSopenharmony_ci * @since 10 83661847f8eSopenharmony_ci */ 83761847f8eSopenharmony_ci/** 83861847f8eSopenharmony_ci * PermissionRequestResult interface. 83961847f8eSopenharmony_ci * 84061847f8eSopenharmony_ci * @typedef { _PermissionRequestResult } 84161847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 84261847f8eSopenharmony_ci * @stagemodelonly 84361847f8eSopenharmony_ci * @crossplatform 84461847f8eSopenharmony_ci * @atomicservice 84561847f8eSopenharmony_ci * @since 11 84661847f8eSopenharmony_ci */ 84761847f8eSopenharmony_ciexport type PermissionRequestResult = _PermissionRequestResult; 84861847f8eSopenharmony_ci/** 84961847f8eSopenharmony_ci * Context interface. 85061847f8eSopenharmony_ci * 85161847f8eSopenharmony_ci * @typedef { _Context } 85261847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 85361847f8eSopenharmony_ci * @stagemodelonly 85461847f8eSopenharmony_ci * @crossplatform 85561847f8eSopenharmony_ci * @since 10 85661847f8eSopenharmony_ci */ 85761847f8eSopenharmony_ci/** 85861847f8eSopenharmony_ci * Context interface. 85961847f8eSopenharmony_ci * 86061847f8eSopenharmony_ci * @typedef { _Context } 86161847f8eSopenharmony_ci * @syscap SystemCapability.Security.AccessToken 86261847f8eSopenharmony_ci * @stagemodelonly 86361847f8eSopenharmony_ci * @crossplatform 86461847f8eSopenharmony_ci * @atomicservice 86561847f8eSopenharmony_ci * @since 11 86661847f8eSopenharmony_ci */ 86761847f8eSopenharmony_ciexport type Context = _Context; 868