• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.fileshare (文件分享)
2
3该模块提供文件分享能力,提供系统应用将公共目录文件统一资源标志符(Uniform Resource Identifier,URI)以读写权限授权给其他应用的接口,授权后应用可通过[@ohos.file.fs](js-apis-file-fs.md)的相关接口进行相关open、read、write等操作,实现文件分享。
4
5> **说明:**
6>
7> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```ts
12import fileShare from '@ohos.fileshare';
13```
14
15## fileShare.grantUriPermission
16
17grantUriPermission(uri: string, bundleName: string, flag: wantConstant.Flags, callback: AsyncCallback<void>): void
18
19对公共目录文件URI进行授权操作,使用callback异步回调。
20
21**需要权限**:ohos.permission.WRITE_MEDIA
22
23**系统接口**:此接口为系统接口
24
25**系统能力**:SystemCapability.FileManagement.AppFileService
26
27**参数:**
28
29| 参数名 | 类型   | 必填 | 说明                       |
30| ------ | ------ | ---- | -------------------------- |
31| uri   | string | 是   | 公共目录文件URI |
32| bundleName   | string | 是   | 分享目标的包名 |
33| flag   | wantConstant.Flags | 是   | 授权的权限,参考[wantConstant.Flags](js-apis-app-ability-wantConstant.md#wantconstantflags)<br/>wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION:读授权<br/>wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION:写授权|
34 | callback | AsyncCallback&lt;void&gt;  | 是    | 异步授权之后的回调                             |
35
36**错误码:**
37
38以下错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)
39
40| 错误码ID                     | 错误信息        |
41| ---------------------------- | ---------- |
42| 201 | Permission verification failed |
43| 202 | The caller is not a system application |
44| 401 | The input parameter is invalid |
45| 143000001 | IPC error |
46
47**示例:**
48
49  ```ts
50  import wantConstant from '@ohos.app.ability.wantConstant';
51  import { BusinessError } from '@ohos.base';
52  let uri: string = 'file://media/image/8';
53  let bundleName: string = 'com.demo.test';
54  try {
55    fileShare.grantUriPermission(uri, bundleName, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION |
56      wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION, (err: BusinessError) => {
57      if (err) {
58        console.error("grantUriPermission failed with error: " + JSON.stringify(err));
59        return;
60      }
61      console.info("grantUriPermission success!");
62    });
63  } catch (err) {
64    let error: BusinessError = err as BusinessError;
65    console.error("grantUriPermission failed with error:" + JSON.stringify(error));
66  }
67  ```
68
69## fileShare.grantUriPermission
70
71grantUriPermission(uri: string, bundleName: string, flag: wantConstant.Flags): Promise&lt;void&gt;
72
73将公共目录文件URI进行授权操作,使用Promise异步回调。
74
75**需要权限**:ohos.permission.WRITE_MEDIA
76
77**系统接口**:此接口为系统接口
78
79**系统能力**:SystemCapability.FileManagement.AppFileService
80
81**参数:**
82
83| 参数名 | 类型   | 必填 | 说明                       |
84| ------ | ------ | ---- | -------------------------- |
85| uri   | string | 是   | 公共目录文件URI |
86| bundleName   | string | 是   | 分享目标的包名 |
87| flag   | wantConstant.Flags | 是   | 授权的权限,参考[wantConstant.Flags](js-apis-app-ability-wantConstant.md#wantconstantflags)<br/>wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION:读授权<br/>wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION:写授权|
88
89**返回值:**
90
91  | 类型                           | 说明         |
92  | ---------------------------- | ---------- |
93  | Promise&lt;void&gt; | Promise对象,无返回值 |
94
95**错误码:**
96
97以下错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。
98
99| 错误码ID                     | 错误信息        |
100| ---------------------------- | ---------- |
101| 201 | Permission verification failed |
102| 202 | The caller is not a system application |
103| 401 | The input parameter is invalid |
104| 143000001 | IPC error |
105
106**示例:**
107
108  ```ts
109  import wantConstant from '@ohos.app.ability.wantConstant';
110  import { BusinessError } from '@ohos.base';
111  let uri: string = 'file://media/image/8';
112  let bundleName: string = 'com.demo.test';
113  try {
114    fileShare.grantUriPermission(uri, bundleName, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION |
115      wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION).then(() => {
116      console.info("grantUriPermission success!");
117    }).catch((error: BusinessError) => {
118      console.error("grantUriPermission failed with error:" + JSON.stringify(error));
119    });
120  } catch (err) {
121    let error: BusinessError = err as BusinessError;
122    console.error("grantUriPermission failed with error:" + JSON.stringify(error));
123  }
124  ```
125