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