1e41f4b71Sopenharmony_ci# @ohos.sendableResourceManager (Resource Management)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciThe **sendableResourceManager** module provides the [resourceToSendableResource](#sendableresourcemanagerresourcetosendableresource) and [sendableResourceToResource](#sendableresourcemanagersendableresourcetoresource) APIs to implement conversion between [Resource](#resource) and [SendableResource](#sendableresource) objects.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ciA **Resource** object can be held by the [Sendable](../../arkts-utils/arkts-sendable.md) class after being converted into a **SendableResource** object. After cross-thread transmission, the **Sendable** class converts the **SendableResource** object into a **Resource** object and uses it as an input parameter for the API used to obtain resources.
6e41f4b71Sopenharmony_ci
7e41f4b71Sopenharmony_ci> **NOTE**
8e41f4b71Sopenharmony_ci>
9e41f4b71Sopenharmony_ci> The initial APIs of this module are supported since API version 12. Newly added APIs will be marked with a superscript to indicate their earliest API version.
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## Modules to Import
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci```js
14e41f4b71Sopenharmony_ciimport sendableResourceManager from '@ohos.sendableResourceManager';
15e41f4b71Sopenharmony_ci```
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci## sendableResourceManager.resourceToSendableResource
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ciresourceToSendableResource(resource: Resource): SendableResource
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ciConverts a **Resource** object to a **SendableResource** object.
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Global.ResourceManager
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci**Parameters**
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci| Name     | Type                                      | Mandatory  | Description                           |
28e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | ---- | ----------------------------- |
29e41f4b71Sopenharmony_ci| resource | [Resource](#resource) | Yes   | **Resource** object.|
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci**Return value**
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci| Type    | Description         |
34e41f4b71Sopenharmony_ci| ------ | ---------------------------- |
35e41f4b71Sopenharmony_ci| [SendableResource](#sendableresource)  | **SendableResource** object after conversion.|
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci**Error codes**
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
40e41f4b71Sopenharmony_ci
41e41f4b71Sopenharmony_ci| ID| Error Message|
42e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- |
43e41f4b71Sopenharmony_ci| 401 | If the input parameter invalid. Possible causes: <br>1.Incorrect parameter types; <br>2.Parameter verification failed.                 |
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci**Example**
46e41f4b71Sopenharmony_ci  ```js
47e41f4b71Sopenharmony_ciimport sendableResourceManager from '@ohos.sendableResourceManager';
48e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
49e41f4b71Sopenharmony_ci
50e41f4b71Sopenharmony_citry {
51e41f4b71Sopenharmony_ci    let sendableResource: sendableResourceManager.SendableResource = sendableResourceManager.resourceToSendableResource($r('app.string.test'));
52e41f4b71Sopenharmony_ci} catch (error) {
53e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
54e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
55e41f4b71Sopenharmony_ci    console.error(`resourceToSendableResource failed, error code: ${code}, message: ${message}.`);
56e41f4b71Sopenharmony_ci}
57e41f4b71Sopenharmony_ci  ```
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci## sendableResourceManager.sendableResourceToResource
60e41f4b71Sopenharmony_ci
61e41f4b71Sopenharmony_cisendableResourceToResource(sendableResource: SendableResource): Resource
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ciConverts a **SendableResource** object to a **Resource** object.
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Global.ResourceManager
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ci**Parameters**
68e41f4b71Sopenharmony_ci
69e41f4b71Sopenharmony_ci| Name     | Type                                      | Mandatory  | Description                           |
70e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- | ---- | ----------------------------- |
71e41f4b71Sopenharmony_ci| sendableResource | [SendableResource](#sendableresource) | Yes   | **SendableResource** object.|
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci**Return value**
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci| Type    | Description         |
76e41f4b71Sopenharmony_ci| ------ | ---------------------------- |
77e41f4b71Sopenharmony_ci| [Resource](#resource) | **Resource** object after conversion.|
78e41f4b71Sopenharmony_ci
79e41f4b71Sopenharmony_ci**Error codes**
80e41f4b71Sopenharmony_ci
81e41f4b71Sopenharmony_ciFor details about the error codes, see [Universal Error Codes](../errorcode-universal.md).
82e41f4b71Sopenharmony_ci
83e41f4b71Sopenharmony_ci| ID| Error Message|
84e41f4b71Sopenharmony_ci| -------- | ---------------------------------------- |
85e41f4b71Sopenharmony_ci| 401 | If the input parameter invalid. Possible causes: <br>1.Incorrect parameter types; <br>2.Parameter verification failed.                 |
86e41f4b71Sopenharmony_ci
87e41f4b71Sopenharmony_ci**Example**
88e41f4b71Sopenharmony_ci  ```js
89e41f4b71Sopenharmony_ciimport sendableResourceManager from '@ohos.sendableResourceManager';
90e41f4b71Sopenharmony_ciimport { BusinessError } from '@ohos.base';
91e41f4b71Sopenharmony_ci
92e41f4b71Sopenharmony_citry {
93e41f4b71Sopenharmony_ci    let resource: sendableResourceManager.Resource = sendableResourceManager.sendableResourceToResource(sendableResourceManager.resourceToSendableResource($r('app.string.test')));
94e41f4b71Sopenharmony_ci} catch (error) {
95e41f4b71Sopenharmony_ci    let code = (error as BusinessError).code;
96e41f4b71Sopenharmony_ci    let message = (error as BusinessError).message;
97e41f4b71Sopenharmony_ci    console.error(`resourceToSendableResource failed, error code: ${code}, message: ${message}.`);
98e41f4b71Sopenharmony_ci}
99e41f4b71Sopenharmony_ci  ```
100e41f4b71Sopenharmony_ci
101e41f4b71Sopenharmony_ci## Resource
102e41f4b71Sopenharmony_ci
103e41f4b71Sopenharmony_ciDefines a **Resource** object.
104e41f4b71Sopenharmony_ci
105e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Global.ResourceManager
106e41f4b71Sopenharmony_ci
107e41f4b71Sopenharmony_ci**Parameters**
108e41f4b71Sopenharmony_ci
109e41f4b71Sopenharmony_ci| Name        | Type    | Read-Only  | Optional |Description         |
110e41f4b71Sopenharmony_ci| ---------- | ------ | ----- | ----  | ---------------|
111e41f4b71Sopenharmony_ci| bundleName | string | No   | No| Bundle name of the application.|
112e41f4b71Sopenharmony_ci| moduleName | string | No   | No| Module name of the application.|
113e41f4b71Sopenharmony_ci| id         | number | No   | No| Resource ID.     |
114e41f4b71Sopenharmony_ci| params     | any[] | No   | Yes| Other resource parameters, including the resource name, substitution value for the formatting API, and quantifier for the singular-plural formatting API.     |
115e41f4b71Sopenharmony_ci| type       | number | No   | Yes| Resource type.     |
116e41f4b71Sopenharmony_ci
117e41f4b71Sopenharmony_ci## SendableResource
118e41f4b71Sopenharmony_ci
119e41f4b71Sopenharmony_ciDefines a **SendableResource** object.
120e41f4b71Sopenharmony_ci
121e41f4b71Sopenharmony_ci**System capability**: SystemCapability.Global.ResourceManager
122e41f4b71Sopenharmony_ci
123e41f4b71Sopenharmony_ci**Parameters**
124e41f4b71Sopenharmony_ci
125e41f4b71Sopenharmony_ci| Name        | Type    | Read-Only  | Optional |Description         |
126e41f4b71Sopenharmony_ci| ---------- | ------ | ----- | ----  | ---------------|
127e41f4b71Sopenharmony_ci| bundleName | string | No   | No| Bundle name of the application.|
128e41f4b71Sopenharmony_ci| moduleName | string | No   | No| Module name of the application.|
129e41f4b71Sopenharmony_ci| id         | number | No   | No| Resource ID.     |
130e41f4b71Sopenharmony_ci| params     | collections.Array<string \| number> | No   | Yes| Other resource parameters, including the resource name, substitution value for the formatting API, and quantifier for the singular-plural formatting API.     |
131e41f4b71Sopenharmony_ci| type       | number | No   | Yes| Resource type.     |
132