161847f8eSopenharmony_ci/* 261847f8eSopenharmony_ci * Copyright (C) 2022-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 CoreFileKit 1961847f8eSopenharmony_ci */ 2061847f8eSopenharmony_ci 2161847f8eSopenharmony_ciimport type { AsyncCallback, Callback } from './@ohos.base'; 2261847f8eSopenharmony_ciimport type wantConstant from './@ohos.ability.wantConstant'; 2361847f8eSopenharmony_ci 2461847f8eSopenharmony_ci/** 2561847f8eSopenharmony_ci * Provides fileshare APIS 2661847f8eSopenharmony_ci * 2761847f8eSopenharmony_ci * @namespace fileShare 2861847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService 2961847f8eSopenharmony_ci * @since 9 3061847f8eSopenharmony_ci */ 3161847f8eSopenharmony_cideclare namespace fileShare { 3261847f8eSopenharmony_ci /** 3361847f8eSopenharmony_ci * Enumerates the uri operate mode types. 3461847f8eSopenharmony_ci * 3561847f8eSopenharmony_ci * @enum { number } OperationMode 3661847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 3761847f8eSopenharmony_ci * @since 11 3861847f8eSopenharmony_ci */ 3961847f8eSopenharmony_ci export enum OperationMode { 4061847f8eSopenharmony_ci /** 4161847f8eSopenharmony_ci * Indicates read permissions. 4261847f8eSopenharmony_ci * 4361847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 4461847f8eSopenharmony_ci * @since 11 4561847f8eSopenharmony_ci */ 4661847f8eSopenharmony_ci READ_MODE = 0b1, 4761847f8eSopenharmony_ci 4861847f8eSopenharmony_ci /** 4961847f8eSopenharmony_ci * Indicates write permissions. 5061847f8eSopenharmony_ci * 5161847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 5261847f8eSopenharmony_ci * @since 11 5361847f8eSopenharmony_ci */ 5461847f8eSopenharmony_ci WRITE_MODE = 0b10, 5561847f8eSopenharmony_ci } 5661847f8eSopenharmony_ci 5761847f8eSopenharmony_ci /** 5861847f8eSopenharmony_ci * Enumerates the error code of the permission policy for the URI operation. 5961847f8eSopenharmony_ci * 6061847f8eSopenharmony_ci * @enum { number } PolicyErrorCode 6161847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 6261847f8eSopenharmony_ci * @since 11 6361847f8eSopenharmony_ci */ 6461847f8eSopenharmony_ci export enum PolicyErrorCode { 6561847f8eSopenharmony_ci /** 6661847f8eSopenharmony_ci * Indicates that the policy is not allowed to be persisted. 6761847f8eSopenharmony_ci * 6861847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 6961847f8eSopenharmony_ci * @since 11 7061847f8eSopenharmony_ci */ 7161847f8eSopenharmony_ci PERSISTENCE_FORBIDDEN = 1, 7261847f8eSopenharmony_ci 7361847f8eSopenharmony_ci /** 7461847f8eSopenharmony_ci * Indicates that the mode of this policy is invalid. 7561847f8eSopenharmony_ci * 7661847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 7761847f8eSopenharmony_ci * @since 11 7861847f8eSopenharmony_ci */ 7961847f8eSopenharmony_ci INVALID_MODE = 2, 8061847f8eSopenharmony_ci 8161847f8eSopenharmony_ci /** 8261847f8eSopenharmony_ci * Indicates that the path of this policy is invalid. 8361847f8eSopenharmony_ci * 8461847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 8561847f8eSopenharmony_ci * @since 11 8661847f8eSopenharmony_ci */ 8761847f8eSopenharmony_ci INVALID_PATH = 3, 8861847f8eSopenharmony_ci 8961847f8eSopenharmony_ci /** 9061847f8eSopenharmony_ci * Indicates that the permission is not persistent. 9161847f8eSopenharmony_ci * 9261847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 9361847f8eSopenharmony_ci * @since 12 9461847f8eSopenharmony_ci */ 9561847f8eSopenharmony_ci PERMISSION_NOT_PERSISTED = 4, 9661847f8eSopenharmony_ci } 9761847f8eSopenharmony_ci 9861847f8eSopenharmony_ci /** 9961847f8eSopenharmony_ci * Failed policy result on URI. 10061847f8eSopenharmony_ci * 10161847f8eSopenharmony_ci * @typedef { object } 10261847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 10361847f8eSopenharmony_ci * @since 11 10461847f8eSopenharmony_ci */ 10561847f8eSopenharmony_ci export type PolicyErrorResult = { 10661847f8eSopenharmony_ci /** 10761847f8eSopenharmony_ci * Indicates the failed uri of the policy information. 10861847f8eSopenharmony_ci * 10961847f8eSopenharmony_ci * @type { string } 11061847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 11161847f8eSopenharmony_ci * @since 11 11261847f8eSopenharmony_ci */ 11361847f8eSopenharmony_ci uri: string; 11461847f8eSopenharmony_ci 11561847f8eSopenharmony_ci /** 11661847f8eSopenharmony_ci * Indicates the error code of the failure in the policy information. 11761847f8eSopenharmony_ci * 11861847f8eSopenharmony_ci * @type { PolicyErrorCode } 11961847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 12061847f8eSopenharmony_ci * @since 11 12161847f8eSopenharmony_ci */ 12261847f8eSopenharmony_ci code: PolicyErrorCode; 12361847f8eSopenharmony_ci 12461847f8eSopenharmony_ci /** 12561847f8eSopenharmony_ci * Indicates the reason of the failure in the policy information. 12661847f8eSopenharmony_ci * 12761847f8eSopenharmony_ci * @type { string } 12861847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 12961847f8eSopenharmony_ci * @since 11 13061847f8eSopenharmony_ci */ 13161847f8eSopenharmony_ci message: string; 13261847f8eSopenharmony_ci }; 13361847f8eSopenharmony_ci 13461847f8eSopenharmony_ci /** 13561847f8eSopenharmony_ci * Policy information to manager permissions on a URI. 13661847f8eSopenharmony_ci * 13761847f8eSopenharmony_ci * @interface PolicyInfo 13861847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 13961847f8eSopenharmony_ci * @since 11 14061847f8eSopenharmony_ci */ 14161847f8eSopenharmony_ci export interface PolicyInfo { 14261847f8eSopenharmony_ci /** 14361847f8eSopenharmony_ci * Indicates the uri of the policy information. 14461847f8eSopenharmony_ci * 14561847f8eSopenharmony_ci * @type { string } 14661847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 14761847f8eSopenharmony_ci * @since 11 14861847f8eSopenharmony_ci */ 14961847f8eSopenharmony_ci uri: string; 15061847f8eSopenharmony_ci 15161847f8eSopenharmony_ci /** 15261847f8eSopenharmony_ci * Indicates the mode of operation for the URI, example { OperationMode.READ_MODE } or { OperationMode.READ_MODE | OperationMode.WRITE_MODE } 15361847f8eSopenharmony_ci * 15461847f8eSopenharmony_ci * @type { number } 15561847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 15661847f8eSopenharmony_ci * @since 11 15761847f8eSopenharmony_ci */ 15861847f8eSopenharmony_ci operationMode: number; 15961847f8eSopenharmony_ci } 16061847f8eSopenharmony_ci 16161847f8eSopenharmony_ci /** 16261847f8eSopenharmony_ci * Provides grant uri permission for app 16361847f8eSopenharmony_ci * 16461847f8eSopenharmony_ci * @permission ohos.permission.WRITE_MEDIA 16561847f8eSopenharmony_ci * @param { string } uri uri 16661847f8eSopenharmony_ci * @param { string } bundleName bundleName 16761847f8eSopenharmony_ci * @param { wantConstant.Flags } flag wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION or wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION 16861847f8eSopenharmony_ci * @param { AsyncCallback<void> } callback 16961847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission verification failed 17061847f8eSopenharmony_ci * @throws { BusinessError } 202 - The caller is not a system application 17161847f8eSopenharmony_ci * @throws { BusinessError } 401 - The input parameter is invalid.Possible causes:1.Mandatory parameters are left unspecified; 17261847f8eSopenharmony_ci * <br>2.Incorrect parameter types. 17361847f8eSopenharmony_ci * @throws { BusinessError } 143000001 - IPC error 17461847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService 17561847f8eSopenharmony_ci * @systemapi 17661847f8eSopenharmony_ci * @since 9 17761847f8eSopenharmony_ci */ 17861847f8eSopenharmony_ci function grantUriPermission( 17961847f8eSopenharmony_ci uri: string, 18061847f8eSopenharmony_ci bundleName: string, 18161847f8eSopenharmony_ci flag: wantConstant.Flags, 18261847f8eSopenharmony_ci callback: AsyncCallback<void> 18361847f8eSopenharmony_ci ): void; 18461847f8eSopenharmony_ci 18561847f8eSopenharmony_ci /** 18661847f8eSopenharmony_ci * Provides grant uri permission for app 18761847f8eSopenharmony_ci * 18861847f8eSopenharmony_ci * @permission ohos.permission.WRITE_MEDIA 18961847f8eSopenharmony_ci * @param { string } uri uri 19061847f8eSopenharmony_ci * @param { string } bundleName bundleName 19161847f8eSopenharmony_ci * @param { wantConstant.Flags } flag wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION or wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION 19261847f8eSopenharmony_ci * @returns { Promise<void> } no callback return Promise otherwise return void 19361847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission verification failed 19461847f8eSopenharmony_ci * @throws { BusinessError } 202 - The caller is not a system application 19561847f8eSopenharmony_ci * @throws { BusinessError } 401 - The input parameter is invalid.Possible causes:1.Mandatory parameters are left unspecified; 19661847f8eSopenharmony_ci * <br>2.Incorrect parameter types. 19761847f8eSopenharmony_ci * @throws { BusinessError } 143000001 - IPC error 19861847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService 19961847f8eSopenharmony_ci * @systemapi 20061847f8eSopenharmony_ci * @since 9 20161847f8eSopenharmony_ci */ 20261847f8eSopenharmony_ci function grantUriPermission(uri: string, bundleName: string, flag: wantConstant.Flags): Promise<void>; 20361847f8eSopenharmony_ci 20461847f8eSopenharmony_ci /** 20561847f8eSopenharmony_ci * Set persistence permissions for the URI 20661847f8eSopenharmony_ci * 20761847f8eSopenharmony_ci * @permission ohos.permission.FILE_ACCESS_PERSIST 20861847f8eSopenharmony_ci * @param { Array<PolicyInfo> } policies - Policy information to grant permission on URIs. 20961847f8eSopenharmony_ci * @returns { Promise<void> } the promise returned by the function. 21061847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. 21161847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 21261847f8eSopenharmony_ci * <br>2.Incorrect parameter types. 21361847f8eSopenharmony_ci * @throws { BusinessError } 801 - Capability not supported. 21461847f8eSopenharmony_ci * @throws { BusinessError } 13900001 - Operation not permitted. 21561847f8eSopenharmony_ci * @throws { BusinessError } 13900042 - Unknown error 21661847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 21761847f8eSopenharmony_ci * @since 11 21861847f8eSopenharmony_ci */ 21961847f8eSopenharmony_ci function persistPermission(policies: Array<PolicyInfo>): Promise<void>; 22061847f8eSopenharmony_ci 22161847f8eSopenharmony_ci /** 22261847f8eSopenharmony_ci * Revoke persistence permissions for the URI 22361847f8eSopenharmony_ci * 22461847f8eSopenharmony_ci * @permission ohos.permission.FILE_ACCESS_PERSIST 22561847f8eSopenharmony_ci * @param { Array<PolicyInfo> } policies - Policy information to grant permission on URIs. 22661847f8eSopenharmony_ci * @returns { Promise<void> } the promise returned by the function. 22761847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. 22861847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 22961847f8eSopenharmony_ci * <br>2.Incorrect parameter types. 23061847f8eSopenharmony_ci * @throws { BusinessError } 801 - Capability not supported. 23161847f8eSopenharmony_ci * @throws { BusinessError } 13900001 - Operation not permitted. 23261847f8eSopenharmony_ci * @throws { BusinessError } 13900042 - Unknown error 23361847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 23461847f8eSopenharmony_ci * @since 11 23561847f8eSopenharmony_ci */ 23661847f8eSopenharmony_ci function revokePermission(policies: Array<PolicyInfo>): Promise<void>; 23761847f8eSopenharmony_ci 23861847f8eSopenharmony_ci /** 23961847f8eSopenharmony_ci * Enable the URI that have been permanently authorized 24061847f8eSopenharmony_ci * 24161847f8eSopenharmony_ci * @permission ohos.permission.FILE_ACCESS_PERSIST 24261847f8eSopenharmony_ci * @param { Array<PolicyInfo> } policies - Policy information to grant permission on URIs. 24361847f8eSopenharmony_ci * @returns { Promise<void> } the promise returned by the function. 24461847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. 24561847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 24661847f8eSopenharmony_ci * <br>2.Incorrect parameter types. 24761847f8eSopenharmony_ci * @throws { BusinessError } 801 - Capability not supported. 24861847f8eSopenharmony_ci * @throws { BusinessError } 13900001 - Operation not permitted. 24961847f8eSopenharmony_ci * @throws { BusinessError } 13900042 - Unknown error 25061847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 25161847f8eSopenharmony_ci * @since 11 25261847f8eSopenharmony_ci */ 25361847f8eSopenharmony_ci function activatePermission(policies: Array<PolicyInfo>): Promise<void>; 25461847f8eSopenharmony_ci 25561847f8eSopenharmony_ci /** 25661847f8eSopenharmony_ci * Stop the authorized URI that has been enabled 25761847f8eSopenharmony_ci * 25861847f8eSopenharmony_ci * @permission ohos.permission.FILE_ACCESS_PERSIST 25961847f8eSopenharmony_ci * @param { Array<PolicyInfo> } policies - Policy information to grant permission on URIs. 26061847f8eSopenharmony_ci * @returns { Promise<void> } the promise returned by the function. 26161847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. 26261847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 26361847f8eSopenharmony_ci * <br>2.Incorrect parameter types. 26461847f8eSopenharmony_ci * @throws { BusinessError } 801 - Capability not supported. 26561847f8eSopenharmony_ci * @throws { BusinessError } 13900001 - Operation not permitted. 26661847f8eSopenharmony_ci * @throws { BusinessError } 13900042 - Unknown error 26761847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 26861847f8eSopenharmony_ci * @since 11 26961847f8eSopenharmony_ci */ 27061847f8eSopenharmony_ci function deactivatePermission(policies: Array<PolicyInfo>): Promise<void>; 27161847f8eSopenharmony_ci 27261847f8eSopenharmony_ci /** 27361847f8eSopenharmony_ci * Check persistent permissions for the URI. 27461847f8eSopenharmony_ci * 27561847f8eSopenharmony_ci * @permission ohos.permission.FILE_ACCESS_PERSIST 27661847f8eSopenharmony_ci * @param { Array<PolicyInfo> } policies - Policy information to grant permission on URIs. 27761847f8eSopenharmony_ci * @returns { Promise<Array<boolean>> } Returns the persistent state of uri permissions. 27861847f8eSopenharmony_ci * @throws { BusinessError } 201 - Permission verification failed, usually the result returned by VerifyAccessToken. 27961847f8eSopenharmony_ci * @throws { BusinessError } 401 - Parameter error.Possible causes:1.Mandatory parameters are left unspecified; 28061847f8eSopenharmony_ci * <br>2.Incorrect parameter types. 28161847f8eSopenharmony_ci * @throws { BusinessError } 801 - Capability not supported. 28261847f8eSopenharmony_ci * @throws { BusinessError } 13900042 - Unknown error 28361847f8eSopenharmony_ci * @syscap SystemCapability.FileManagement.AppFileService.FolderAuthorization 28461847f8eSopenharmony_ci * @since 12 28561847f8eSopenharmony_ci */ 28661847f8eSopenharmony_ci function checkPersistentPermission(policies: Array<PolicyInfo>): Promise<Array<boolean>>; 28761847f8eSopenharmony_ci} 28861847f8eSopenharmony_ci 28961847f8eSopenharmony_ciexport default fileShare; 290