• 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```js
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  ```js
50import wantConstant from '@ohos.app.ability.wantConstant';
51
52
53let uri = 'datashare:///media/image/8';
54let bundleName = 'com.demo.test';
55try {
56    fileShare.grantUriPermission(uri, bundleName, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION | wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION, (err) => {
57        if (err) {
58            console.error("grantUriPermission failed with error: " + err);
59            return;
60        }
61        console.info("grantUriPermission success!");
62    });
63} catch (error) {
64    console.error("grantUriPermission failed with error:" + error);
65}
66  ```
67
68## fileShare.grantUriPermission
69
70grantUriPermission(uri: string, bundleName: string, flag: wantConstant.Flags): Promise&lt;void&gt;
71
72将公共目录文件URI进行授权操作,使用Promise异步回调。
73
74**需要权限**:ohos.permission.WRITE_MEDIA
75
76**系统接口**:此接口为系统接口
77
78**系统能力**:SystemCapability.FileManagement.AppFileService
79
80**参数:**
81
82| 参数名 | 类型   | 必填 | 说明                       |
83| ------ | ------ | ---- | -------------------------- |
84| uri   | string | 是   | 公共目录文件URI |
85| bundleName   | string | 是   | 分享目标的包名 |
86| 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:写授权|
87
88**返回值:**
89
90  | 类型                           | 说明         |
91  | ---------------------------- | ---------- |
92  | Promise&lt;void&gt; | Promise对象,无返回值 |
93
94**错误码:**
95
96以下错误码的详细介绍请参见[文件管理错误码](../errorcodes/errorcode-filemanagement.md)。
97
98| 错误码ID                     | 错误信息        |
99| ---------------------------- | ---------- |
100| 201 | Permission verification failed |
101| 202 | The caller is not a system application |
102| 401 | The input parameter is invalid |
103| 143000001 | IPC error |
104
105**示例:**
106
107  ```js
108import wantConstant from '@ohos.app.ability.wantConstant';
109
110let uri = 'datashare:///media/image/8';
111let bundleName = 'com.demo.test';
112try {
113    fileShare.grantUriPermission(uri, bundleName, wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION |
114      wantConstant.Flags.FLAG_AUTH_WRITE_URI_PERMISSION).then(function () {
115        console.info("grantUriPermission success!");
116    }).catch(function (error) {
117        console.error("grantUriPermission failed with error:" + error);
118    });
119} catch (error) {
120    console.error("grantUriPermission failed with error:" + error);
121}
122  ```
123