• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2021-2023 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import type { AsyncCallback } from './@ohos.base';
17
18/**
19 * Provides the capabilities and methods for obtaining Short Message Service (SMS) management objects.
20 *
21 * @namespace sms
22 * @syscap SystemCapability.Telephony.SmsMms
23 * @since 6
24 */
25declare namespace sms {
26  /**
27   * Splits a long SMS message into multiple fragments.
28   *
29   * <p>If the length of an SMS message exceeds the maximum length allowed (140 bytes),
30   * the SMS message is split into multiple segments for processing.
31   *
32   * @permission ohos.permission.SEND_MESSAGES
33   * @param { string } content - Indicates the short message content, which cannot be {@code null}.
34   * @param { AsyncCallback<Array<string>> } callback - Indicates the callback for getting a list of split segments,
35   * which can be combined into a complete SMS message;
36   * returns an empty string if no permission is granted or the short message content is {@code null}.
37   * @throws { BusinessError } 201 - Permission denied.
38   * @throws { BusinessError } 202 - Non-system applications use system APIs.
39   * @throws { BusinessError } 401 - Parameter error.
40   * @throws { BusinessError } 8300001 - Invalid parameter value.
41   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
42   * @throws { BusinessError } 8300003 - System internal error.
43   * @throws { BusinessError } 8300999 - Unknown error code.
44   * @syscap SystemCapability.Telephony.SmsMms
45   * @systemapi Hide this for inner system use.
46   * @since 8
47   */
48  function splitMessage(content: string, callback: AsyncCallback<Array<string>>): void;
49
50  /**
51   * Splits a long SMS message into multiple fragments.
52   *
53   * <p>If the length of an SMS message exceeds the maximum length allowed (140 bytes),
54   * the SMS message is split into multiple segments for processing.
55   *
56   * @permission ohos.permission.SEND_MESSAGES
57   * @param { string } content - Indicates the short message content, which cannot be {@code null}.
58   * @returns { Promise<Array<string>> } Returns a list of split segments, which can be combined into a complete SMS
59   * message; returns an empty string if no permission is granted or the short message content is {@code null}.
60   * @throws { BusinessError } 201 - Permission denied.
61   * @throws { BusinessError } 202 - Non-system applications use system APIs.
62   * @throws { BusinessError } 401 - Parameter error.
63   * @throws { BusinessError } 8300001 - Invalid parameter value.
64   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
65   * @throws { BusinessError } 8300003 - System internal error.
66   * @throws { BusinessError } 8300999 - Unknown error code.
67   * @syscap SystemCapability.Telephony.SmsMms
68   * @systemapi Hide this for inner system use.
69   * @since 8
70   */
71  function splitMessage(content: string): Promise<Array<string>>;
72
73  /**
74   * Creates an SMS message instance based on the protocol data unit (PDU) and the specified SMS protocol.
75   *
76   * <p>After receiving the original PDU data, the system creates an SMS message instance according to the specified
77   * SMS protocol.
78   *
79   * @param { Array<number> } pdu - Indicates the original data, which is obtained from the received SMS.
80   * @param { string } specification - Indicates the SMS protocol type. The value {@code 3gpp} indicates GSM/UMTS/LTE
81   * SMS, and the value {@code 3gpp2} indicates CDMA/LTE SMS.
82   * @param { AsyncCallback<ShortMessage> } callback - Indicates the callback for getting an SMS message instance;
83   * returns {@code null} if {@code pdu} is empty or {@code specification} is not supported.
84   * @throws { BusinessError } 401 - Parameter error.
85   * @throws { BusinessError } 8300001 - Invalid parameter value.
86   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
87   * @throws { BusinessError } 8300003 - System internal error.
88   * @throws { BusinessError } 8300999 - Unknown error code.
89   * @syscap SystemCapability.Telephony.SmsMms
90   * @since 6
91   */
92  function createMessage(pdu: Array<number>, specification: string, callback: AsyncCallback<ShortMessage>): void;
93
94  /**
95   * Creates an SMS message instance based on the protocol data unit (PDU) and the specified SMS protocol.
96   *
97   * <p>After receiving the original PDU data, the system creates an SMS message instance according to the specified
98   * SMS protocol.
99   *
100   * @param { Array<number> } pdu - Indicates the original data, which is obtained from the received SMS.
101   * @param { string } specification - Indicates the SMS protocol type. The value {@code 3gpp} indicates GSM/UMTS/LTE
102   * SMS, and the value {@code 3gpp2} indicates CDMA/LTE SMS.
103   * @returns { Promise<ShortMessage> } Returns an SMS message instance;
104   * returns {@code null} if {@code pdu} is empty or {@code specification} is not supported.
105   * @throws { BusinessError } 401 - Parameter error.
106   * @throws { BusinessError } 8300001 - Invalid parameter value.
107   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
108   * @throws { BusinessError } 8300003 - System internal error.
109   * @throws { BusinessError } 8300999 - Unknown error code.
110   * @syscap SystemCapability.Telephony.SmsMms
111   * @since 6
112   */
113  function createMessage(pdu: Array<number>, specification: string): Promise<ShortMessage>;
114
115  /**
116   * Sends a text or data SMS message.
117   *
118   * <p>This method checks whether the length of an SMS message exceeds the maximum length. If the
119   * maximum length is exceeded, the SMS message is split into multiple parts and sent separately.
120   *
121   * @permission ohos.permission.SEND_MESSAGES
122   * @param { SendMessageOptions } options - Indicates the parameters and callback for sending the SMS message.
123   * @throws { BusinessError } 201 - Permission denied.
124   * @throws { BusinessError } 401 - Parameter error.
125   * @throws { BusinessError } 8300001 - Invalid parameter value.
126   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
127   * @throws { BusinessError } 8300003 - System internal error.
128   * @throws { BusinessError } 8300999 - Unknown error code.
129   * @syscap SystemCapability.Telephony.SmsMms
130   * @since 6
131   * @deprecated since 10
132   * @useinstead telephony.sms#sendShortMessage
133   */
134  function sendMessage(options: SendMessageOptions): void;
135
136  /**
137   * Sends a text or data SMS message.
138   *
139   * <p>This method checks whether the length of an SMS message exceeds the maximum length. If the
140   * maximum length is exceeded, the SMS message is split into multiple parts and sent separately.
141   *
142   * @permission ohos.permission.SEND_MESSAGES
143   * @param { SendMessageOptions } options - Indicates the parameters and callback for sending the SMS message.
144   * @param { AsyncCallback<void> } callback - The callback of sendShortMessage.
145   * @throws { BusinessError } 201 - Permission denied.
146   * @throws { BusinessError } 401 - Parameter error.
147   * @throws { BusinessError } 8300001 - Invalid parameter value.
148   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
149   * @throws { BusinessError } 8300003 - System internal error.
150   * @throws { BusinessError } 8300999 - Unknown error code.
151   * @syscap SystemCapability.Telephony.SmsMms
152   * @since 10
153   */
154  function sendShortMessage(options: SendMessageOptions, callback: AsyncCallback<void>): void;
155
156  /**
157   * Sends a text or data SMS message.
158   *
159   * <p>This method checks whether the length of an SMS message exceeds the maximum length. If the
160   * maximum length is exceeded, the SMS message is split into multiple parts and sent separately.
161   *
162   * @permission ohos.permission.SEND_MESSAGES
163   * @param { SendMessageOptions } options - Indicates the parameters and callback for sending the SMS message.
164   * @returns { Promise<void> } The promise returned by the sendShortMessage.
165   * @throws { BusinessError } 201 - Permission denied.
166   * @throws { BusinessError } 401 - Parameter error.
167   * @throws { BusinessError } 8300001 - Invalid parameter value.
168   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
169   * @throws { BusinessError } 8300003 - System internal error.
170   * @throws { BusinessError } 8300999 - Unknown error code.
171   * @syscap SystemCapability.Telephony.SmsMms
172   * @since 10
173   */
174  function sendShortMessage(options: SendMessageOptions): Promise<void>;
175
176  /**
177   * Sets the default SIM card for sending SMS messages. You can obtain the default SIM card by
178   * using {@code getDefaultSmsSlotId}.
179   *
180   * @permission ohos.permission.SET_TELEPHONY_STATE
181   * @param { number } slotId - Indicates the default SIM card for sending SMS messages. The value {@code 0} indicates
182   * card slot 1, and the value {@code 1} indicates card slot 2.
183   * @param { AsyncCallback<void> } callback - The callback of setDefaultSmsSlotId.
184   * @throws { BusinessError } 201 - Permission denied.
185   * @throws { BusinessError } 202 - Non-system applications use system APIs.
186   * @throws { BusinessError } 401 - Parameter error.
187   * @throws { BusinessError } 8300001 - Invalid parameter value.
188   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
189   * @throws { BusinessError } 8300003 - System internal error.
190   * @throws { BusinessError } 8300004 - Do not have sim card.
191   * @throws { BusinessError } 8300999 - Unknown error code.
192   * @syscap SystemCapability.Telephony.SmsMms
193   * @systemapi Hide this for inner system use.
194   * @since 7
195   */
196  function setDefaultSmsSlotId(slotId: number, callback: AsyncCallback<void>): void;
197
198  /**
199   * Sets the default SIM card for sending SMS messages. You can obtain the default SIM card by
200   * using {@code getDefaultSmsSlotId}.
201   *
202   * @permission ohos.permission.SET_TELEPHONY_STATE
203   * @param { number } slotId - Indicates the default SIM card for sending SMS messages. The value {@code 0} indicates
204   * card slot 1, and the value {@code 1} indicates card slot 2.
205   * @returns { Promise<void> } The promise returned by the setDefaultSmsSlotId.
206   * @throws { BusinessError } 201 - Permission denied.
207   * @throws { BusinessError } 202 - Non-system applications use system APIs.
208   * @throws { BusinessError } 401 - Parameter error.
209   * @throws { BusinessError } 8300001 - Invalid parameter value.
210   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
211   * @throws { BusinessError } 8300003 - System internal error.
212   * @throws { BusinessError } 8300004 - Do not have sim card.
213   * @throws { BusinessError } 8300999 - Unknown error code.
214   * @syscap SystemCapability.Telephony.SmsMms
215   * @systemapi Hide this for inner system use.
216   * @since 7
217   */
218  function setDefaultSmsSlotId(slotId: number): Promise<void>;
219
220  /**
221   * Obtains the default SIM card for sending SMS messages.
222   *
223   * @param { AsyncCallback<number> } callback - Indicates the callback for getting the default SIM card for sending SMS
224   * messages.
225   * Returns {@code 0} if the default SIM card for sending SMS messages is in card slot 1;
226   * returns {@code 1} if the default SIM card for sending SMS messages is in card slot 2.
227   * @syscap SystemCapability.Telephony.SmsMms
228   * @since 7
229   */
230  function getDefaultSmsSlotId(callback: AsyncCallback<number>): void;
231
232  /**
233   * Obtains the default SIM card for sending SMS messages.
234   *
235   * @returns { Promise<number> } Returns {@code 0} if the default SIM card for sending SMS messages is in card slot 1;
236   * returns {@code 1} if the default SIM card for sending SMS messages is in card slot 2.
237   * @syscap SystemCapability.Telephony.SmsMms
238   * @since 7
239   */
240  function getDefaultSmsSlotId(): Promise<number>;
241
242  /**
243   * Sets the address for the Short Message Service Center (SMSC) based on a specified slot ID.
244   *
245   * @permission ohos.permission.SET_TELEPHONY_STATE
246   * @param { number } slotId - Indicates the ID of the slot holding the SIM card for sending SMS messages.
247   * @param { string } smscAddr - Indicates the SMSC address.
248   * @param { AsyncCallback<void> } callback - The callback of setSmscAddr.
249   * @throws { BusinessError } 201 - Permission denied.
250   * @throws { BusinessError } 202 - Non-system applications use system APIs.
251   * @throws { BusinessError } 401 - Parameter error.
252   * @throws { BusinessError } 8300001 - Invalid parameter value.
253   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
254   * @throws { BusinessError } 8300003 - System internal error.
255   * @throws { BusinessError } 8300999 - Unknown error code.
256   * @syscap SystemCapability.Telephony.SmsMms
257   * @systemapi Hide this for inner system use.
258   * @since 7
259   */
260  function setSmscAddr(slotId: number, smscAddr: string, callback: AsyncCallback<void>): void;
261
262  /**
263   * Sets the address for the Short Message Service Center (SMSC) based on a specified slot ID.
264   *
265   * @permission ohos.permission.SET_TELEPHONY_STATE
266   * @param { number } slotId - Indicates the ID of the slot holding the SIM card for sending SMS messages.
267   * @param { string } smscAddr - Indicates the SMSC address.
268   * @returns { Promise<void> } The promise returned by the setSmscAddr.
269   * @throws { BusinessError } 201 - Permission denied.
270   * @throws { BusinessError } 202 - Non-system applications use system APIs.
271   * @throws { BusinessError } 401 - Parameter error.
272   * @throws { BusinessError } 8300001 - Invalid parameter value.
273   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
274   * @throws { BusinessError } 8300003 - System internal error.
275   * @throws { BusinessError } 8300999 - Unknown error code.
276   * @syscap SystemCapability.Telephony.SmsMms
277   * @systemapi Hide this for inner system use.
278   * @since 7
279   */
280  function setSmscAddr(slotId: number, smscAddr: string): Promise<void>;
281
282  /**
283   * Obtains the SMSC address based on a specified slot ID.
284   *
285   * @permission ohos.permission.GET_TELEPHONY_STATE
286   * @param { number } slotId - Indicates the ID of the slot holding the SIM card for sending SMS messages.
287   * @param { AsyncCallback<string> } callback - Indicates the callback for getting the SMSC address.
288   * @throws { BusinessError } 201 - Permission denied.
289   * @throws { BusinessError } 202 - Non-system applications use system APIs.
290   * @throws { BusinessError } 401 - Parameter error.
291   * @throws { BusinessError } 8300001 - Invalid parameter value.
292   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
293   * @throws { BusinessError } 8300003 - System internal error.
294   * @throws { BusinessError } 8300999 - Unknown error code.
295   * @syscap SystemCapability.Telephony.SmsMms
296   * @systemapi Hide this for inner system use.
297   * @since 7
298   */
299  function getSmscAddr(slotId: number, callback: AsyncCallback<string>): void;
300
301  /**
302   * Obtains the SMSC address based on a specified slot ID.
303   *
304   * @permission ohos.permission.GET_TELEPHONY_STATE
305   * @param { number } slotId - Indicates the ID of the slot holding the SIM card for sending SMS messages.
306   * @returns { Promise<string> } Returns the SMSC address.
307   * @throws { BusinessError } 201 - Permission denied.
308   * @throws { BusinessError } 202 - Non-system applications use system APIs.
309   * @throws { BusinessError } 401 - Parameter error.
310   * @throws { BusinessError } 8300001 - Invalid parameter value.
311   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
312   * @throws { BusinessError } 8300003 - System internal error.
313   * @throws { BusinessError } 8300999 - Unknown error code.
314   * @syscap SystemCapability.Telephony.SmsMms
315   * @systemapi Hide this for inner system use.
316   * @since 7
317   */
318  function getSmscAddr(slotId: number): Promise<string>;
319
320  /**
321   * Returns whether a device is capable of sending and receiving SMS messages.
322   *
323   * @returns { boolean } Returns {@code true} if the device is capable of sending and receiving SMS messages;
324   * returns {@code false} otherwise.
325   * @syscap SystemCapability.Telephony.SmsMms
326   * @since 7
327   */
328  function hasSmsCapability(): boolean;
329
330  /**
331   * Add an SMS Message to SIM card.
332   *
333   * @permission ohos.permission.RECEIVE_SMS and ohos.permission.SEND_MESSAGES
334   * @param { SimMessageOptions } options - Indicates SIM message options.
335   * @param { AsyncCallback<void> } callback - The callback of addSimMessage.
336   * @throws { BusinessError } 201 - Permission denied.
337   * @throws { BusinessError } 202 - Non-system applications use system APIs.
338   * @throws { BusinessError } 401 - Parameter error.
339   * @throws { BusinessError } 8300001 - Invalid parameter value.
340   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
341   * @throws { BusinessError } 8300003 - System internal error.
342   * @throws { BusinessError } 8300999 - Unknown error code.
343   * @syscap SystemCapability.Telephony.SmsMms
344   * @systemapi Hide this for inner system use.
345   * @since 7
346   */
347  function addSimMessage(options: SimMessageOptions, callback: AsyncCallback<void>): void;
348
349  /**
350   * Add an SMS Message to SIM card.
351   *
352   * @permission ohos.permission.RECEIVE_SMS and ohos.permission.SEND_MESSAGES
353   * @param { SimMessageOptions } options - Indicates SIM message options.
354   * @returns { Promise<void> } The promise returned by the addSimMessage.
355   * @throws { BusinessError } 201 - Permission denied.
356   * @throws { BusinessError } 202 - Non-system applications use system APIs.
357   * @throws { BusinessError } 401 - Parameter error.
358   * @throws { BusinessError } 8300001 - Invalid parameter value.
359   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
360   * @throws { BusinessError } 8300003 - System internal error.
361   * @throws { BusinessError } 8300999 - Unknown error code.
362   * @syscap SystemCapability.Telephony.SmsMms
363   * @systemapi Hide this for inner system use.
364   * @since 7
365   */
366  function addSimMessage(options: SimMessageOptions): Promise<void>;
367
368  /**
369   * Delete an SMS Message from the SIM card.
370   *
371   * @permission ohos.permission.RECEIVE_SMS and ohos.permission.SEND_MESSAGES
372   * @param { number } slotId - Indicates the card slot index number, ranging from 0 to the maximum card slot index
373   * number supported by the device.
374   * @param { number } msgIndex - Indicates the message index.
375   * @param { AsyncCallback<void> } callback - The callback of delSimMessage.
376   * @throws { BusinessError } 201 - Permission denied.
377   * @throws { BusinessError } 202 - Non-system applications use system APIs.
378   * @throws { BusinessError } 401 - Parameter error.
379   * @throws { BusinessError } 8300001 - Invalid parameter value.
380   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
381   * @throws { BusinessError } 8300003 - System internal error.
382   * @throws { BusinessError } 8300999 - Unknown error code.
383   * @syscap SystemCapability.Telephony.SmsMms
384   * @systemapi Hide this for inner system use.
385   * @since 7
386   */
387  function delSimMessage(slotId: number, msgIndex: number, callback: AsyncCallback<void>): void;
388
389  /**
390   * Delete an SMS Message from the SIM card.
391   *
392   * @permission ohos.permission.RECEIVE_SMS and ohos.permission.SEND_MESSAGES
393   * @param { number } slotId - Indicates the card slot index number, ranging from 0 to the maximum card slot index
394   * number supported by the device.
395   * @param { number } msgIndex - Indicates the message index.
396   * @returns { Promise<void> } The promise returned by the delSimMessage.
397   * @throws { BusinessError } 201 - Permission denied.
398   * @throws { BusinessError } 202 - Non-system applications use system APIs.
399   * @throws { BusinessError } 401 - Parameter error.
400   * @throws { BusinessError } 8300001 - Invalid parameter value.
401   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
402   * @throws { BusinessError } 8300003 - System internal error.
403   * @throws { BusinessError } 8300999 - Unknown error code.
404   * @syscap SystemCapability.Telephony.SmsMms
405   * @systemapi Hide this for inner system use.
406   * @since 7
407   */
408  function delSimMessage(slotId: number, msgIndex: number): Promise<void>;
409
410  /**
411   * Update a SIM SMS of SIM card.
412   *
413   * @permission ohos.permission.RECEIVE_SMS and ohos.permission.SEND_MESSAGES
414   * @param { UpdateSimMessageOptions } options - Indicates update SIM message options.
415   * @param { AsyncCallback<void> } callback - The callback of updateSimMessage.
416   * @throws { BusinessError } 201 - Permission denied.
417   * @throws { BusinessError } 202 - Non-system applications use system APIs.
418   * @throws { BusinessError } 401 - Parameter error.
419   * @throws { BusinessError } 8300001 - Invalid parameter value.
420   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
421   * @throws { BusinessError } 8300003 - System internal error.
422   * @throws { BusinessError } 8300999 - Unknown error code.
423   * @syscap SystemCapability.Telephony.SmsMms
424   * @systemapi Hide this for inner system use.
425   * @since 7
426   */
427  function updateSimMessage(options: UpdateSimMessageOptions, callback: AsyncCallback<void>): void;
428
429  /**
430   * Update a SIM SMS of SIM card.
431   *
432   * @permission ohos.permission.RECEIVE_SMS and ohos.permission.SEND_MESSAGES
433   * @param { UpdateSimMessageOptions } options - Indicates update SIM message options.
434   * @returns { Promise<void> } The promise returned by the updateSimMessage.
435   * @throws { BusinessError } 201 - Permission denied.
436   * @throws { BusinessError } 202 - Non-system applications use system APIs.
437   * @throws { BusinessError } 401 - Parameter error.
438   * @throws { BusinessError } 8300001 - Invalid parameter value.
439   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
440   * @throws { BusinessError } 8300003 - System internal error.
441   * @throws { BusinessError } 8300999 - Unknown error code.
442   * @syscap SystemCapability.Telephony.SmsMms
443   * @systemapi Hide this for inner system use.
444   * @since 7
445   */
446  function updateSimMessage(options: UpdateSimMessageOptions): Promise<void>;
447
448  /**
449   * Get all SMS records in SIM.
450   *
451   * @permission ohos.permission.RECEIVE_SMS
452   * @param { number } slotId - Indicates the card slot index number, ranging from 0 to the maximum card slot index
453   * number supported by the device.
454   * @param { AsyncCallback<Array<SimShortMessage>> } callback - Indicates the callback for getting a
455   * {@code SimShortMessage} object.
456   * @throws { BusinessError } 201 - Permission denied.
457   * @throws { BusinessError } 202 - Non-system applications use system APIs.
458   * @throws { BusinessError } 401 - Parameter error.
459   * @throws { BusinessError } 8300001 - Invalid parameter value.
460   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
461   * @throws { BusinessError } 8300003 - System internal error.
462   * @throws { BusinessError } 8300999 - Unknown error code.
463   * @syscap SystemCapability.Telephony.SmsMms
464   * @systemapi Hide this for inner system use.
465   * @since 7
466   */
467  function getAllSimMessages(slotId: number, callback: AsyncCallback<Array<SimShortMessage>>): void;
468
469  /**
470   * Get all SMS records in SIM.
471   *
472   * @permission ohos.permission.RECEIVE_SMS
473   * @param { number } slotId - Indicates the card slot index number, ranging from 0 to the maximum card slot index
474   * number supported by the device.
475   * @returns { Promise<Array<SimShortMessage>> } Returns a {@code SimShortMessage} object.
476   * @throws { BusinessError } 201 - Permission denied.
477   * @throws { BusinessError } 202 - Non-system applications use system APIs.
478   * @throws { BusinessError } 401 - Parameter error.
479   * @throws { BusinessError } 8300001 - Invalid parameter value.
480   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
481   * @throws { BusinessError } 8300003 - System internal error.
482   * @throws { BusinessError } 8300999 - Unknown error code.
483   * @syscap SystemCapability.Telephony.SmsMms
484   * @systemapi Hide this for inner system use.
485   * @since 7
486   */
487  function getAllSimMessages(slotId: number): Promise<Array<SimShortMessage>>;
488
489  /**
490   * Turn on or off Cell BroadCast.
491   *
492   * @permission ohos.permission.RECEIVE_SMS
493   * @param { CBConfigOptions } options - Indicates cell broadcast configuration options.
494   * @param { AsyncCallback<void> } callback - The callback of setCBConfig.
495   * @throws { BusinessError } 201 - Permission denied.
496   * @throws { BusinessError } 202 - Non-system applications use system APIs.
497   * @throws { BusinessError } 401 - Parameter error.
498   * @throws { BusinessError } 8300001 - Invalid parameter value.
499   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
500   * @throws { BusinessError } 8300003 - System internal error.
501   * @throws { BusinessError } 8300999 - Unknown error code.
502   * @syscap SystemCapability.Telephony.SmsMms
503   * @systemapi Hide this for inner system use.
504   * @since 7
505   */
506  function setCBConfig(options: CBConfigOptions, callback: AsyncCallback<void>): void;
507
508  /**
509   * Turn on or off Cell BroadCast.
510   *
511   * @permission ohos.permission.RECEIVE_SMS
512   * @param { CBConfigOptions } options - Indicates cell broadcast configuration options.
513   * @returns { Promise<void> } The promise returned by the setCBConfig.
514   * @throws { BusinessError } 201 - Permission denied.
515   * @throws { BusinessError } 202 - Non-system applications use system APIs.
516   * @throws { BusinessError } 401 - Parameter error.
517   * @throws { BusinessError } 8300001 - Invalid parameter value.
518   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
519   * @throws { BusinessError } 8300003 - System internal error.
520   * @throws { BusinessError } 8300999 - Unknown error code.
521   * @syscap SystemCapability.Telephony.SmsMms
522   * @systemapi Hide this for inner system use.
523   * @since 7
524   */
525  function setCBConfig(options: CBConfigOptions): Promise<void>;
526
527  /**
528   * Get an SMS segment encode relation information.
529   *
530   * @param { number } slotId - Indicates the card slot index number, ranging from 0 to the maximum card slot index
531   * number supported by the device.
532   * @param { string } message - Indicates short message.
533   * @param { boolean } force7bit - Indicates whether to use 7 bit encoding.
534   * @param { AsyncCallback<SmsSegmentsInfo> } callback - Indicates the callback for getting a {@code SmsSegmentsInfo}
535   * object.
536   * @throws { BusinessError } 202 - Non-system applications use system APIs.
537   * @throws { BusinessError } 401 - Parameter error.
538   * @throws { BusinessError } 8300001 - Invalid parameter value.
539   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
540   * @throws { BusinessError } 8300003 - System internal error.
541   * @throws { BusinessError } 8300999 - Unknown error code.
542   * @syscap SystemCapability.Telephony.SmsMms
543   * @systemapi Hide this for inner system use.
544   * @since 8
545   */
546  function getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean, callback: AsyncCallback<SmsSegmentsInfo>): void;
547
548  /**
549   * Get an SMS segment encode relation information.
550   *
551   * @param { number } slotId - Indicates the card slot index number, ranging from 0 to the maximum card slot index
552   * number supported by the device.
553   * @param { string } message - Indicates short message.
554   * @param { boolean } force7bit - Indicates whether to use 7 bit encoding.
555   * @returns { Promise<SmsSegmentsInfo> } Returns a {@code SmsSegmentsInfo} object.
556   * @throws { BusinessError } 202 - Non-system applications use system APIs.
557   * @throws { BusinessError } 401 - Parameter error.
558   * @throws { BusinessError } 8300001 - Invalid parameter value.
559   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
560   * @throws { BusinessError } 8300003 - System internal error.
561   * @throws { BusinessError } 8300999 - Unknown error code.
562   * @syscap SystemCapability.Telephony.SmsMms
563   * @systemapi Hide this for inner system use.
564   * @since 8
565   */
566  function getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean): Promise<SmsSegmentsInfo>;
567
568  /**
569   * SMS over IMS is supported if IMS is registered and SMS is supported on IMS.
570   *
571   * @param { number } slotId - Indicates the default SIM card for Ims Sms. The value {@code 0} indicates card slot 1,
572   * and the value {@code 1} indicates card slot 2.
573   * @param { AsyncCallback<boolean> } callback - Indicates the callback of isImsSmsSupported.
574   * Returns {@code true} if SMS over IMS is supported, {@code false} otherwise.
575   * @throws { BusinessError } 202 - Non-system applications use system APIs.
576   * @throws { BusinessError } 401 - Parameter error.
577   * @throws { BusinessError } 8300001 - Invalid parameter value.
578   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
579   * @throws { BusinessError } 8300003 - System internal error.
580   * @throws { BusinessError } 8300999 - Unknown error code.
581   * @syscap SystemCapability.Telephony.SmsMms
582   * @systemapi Hide this for inner system use.
583   * @since 8
584   */
585  function isImsSmsSupported(slotId: number, callback: AsyncCallback<boolean>): void;
586
587  /**
588   * SMS over IMS is supported if IMS is registered and SMS is supported on IMS.
589   *
590   * @param { number } slotId - Indicates the default SIM card for Ims Sms. The value {@code 0} indicates card slot 1,
591   * and the value {@code 1} indicates card slot 2.
592   * @returns { Promise<boolean> } Returns {@code true} if SMS over IMS is supported, {@code false} otherwise.
593   * @throws { BusinessError } 202 - Non-system applications use system APIs.
594   * @throws { BusinessError } 401 - Parameter error.
595   * @throws { BusinessError } 8300001 - Invalid parameter value.
596   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
597   * @throws { BusinessError } 8300003 - System internal error.
598   * @throws { BusinessError } 8300999 - Unknown error code.
599   * @syscap SystemCapability.Telephony.SmsMms
600   * @systemapi Hide this for inner system use.
601   * @since 8
602   */
603  function isImsSmsSupported(slotId: number): Promise<boolean>;
604
605  /**
606   * Gets SMS format supported on IMS. SMS over IMS format is either 3GPP or 3GPP2.
607   *
608   * @param { AsyncCallback<string> } callback - Indicates the callback for getting format, 3gpp, 3gpp2 or unknown.
609   * @throws { BusinessError } 202 - Non-system applications use system APIs.
610   * @throws { BusinessError } 401 - Parameter error.
611   * @throws { BusinessError } 8300001 - Invalid parameter value.
612   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
613   * @throws { BusinessError } 8300003 - System internal error.
614   * @throws { BusinessError } 8300999 - Unknown error code.
615   * @syscap SystemCapability.Telephony.SmsMms
616   * @systemapi Hide this for inner system use.
617   * @since 8
618   */
619  function getImsShortMessageFormat(callback: AsyncCallback<string>): void;
620
621  /**
622   * Gets SMS format supported on IMS. SMS over IMS format is either 3GPP or 3GPP2.
623   *
624   * @returns { Promise<string> } Returns format, 3gpp, 3gpp2 or unknown.
625   * @throws { BusinessError } 202 - Non-system applications use system APIs.
626   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
627   * @throws { BusinessError } 8300003 - System internal error.
628   * @throws { BusinessError } 8300999 - Unknown error code.
629   * @syscap SystemCapability.Telephony.SmsMms
630   * @systemapi Hide this for inner system use.
631   * @since 8
632   */
633  function getImsShortMessageFormat(): Promise<string>;
634
635  /**
636   * Decode the message content.
637   *
638   * @param { string | Array<number> } mmsFilePathName - Indicates the path name of the multimedia message file.
639   * @param { AsyncCallback<MmsInformation> } callback - Indicates the callback for getting a {@code MmsInformation}
640   * object.
641   * @throws { BusinessError } 202 - Non-system applications use system APIs.
642   * @throws { BusinessError } 401 - Parameter error.
643   * @throws { BusinessError } 8300001 - Invalid parameter value.
644   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
645   * @throws { BusinessError } 8300003 - System internal error.
646   * @throws { BusinessError } 8300999 - Unknown error code.
647   * @syscap SystemCapability.Telephony.SmsMms
648   * @systemapi Hide this for inner system use.
649   * @since 8
650   */
651  function decodeMms(mmsFilePathName: string | Array<number>, callback: AsyncCallback<MmsInformation>): void;
652
653  /**
654   * Decode the message content.
655   *
656   * @param { string | Array<number> } mmsFilePathName - Indicates the path name of the multimedia message file.
657   * @returns { Promise<MmsInformation> } Returns a {@code MmsInformation} object.
658   * @throws { BusinessError } 202 - Non-system applications use system APIs.
659   * @throws { BusinessError } 401 - Parameter error.
660   * @throws { BusinessError } 8300001 - Invalid parameter value.
661   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
662   * @throws { BusinessError } 8300003 - System internal error.
663   * @throws { BusinessError } 8300999 - Unknown error code.
664   * @syscap SystemCapability.Telephony.SmsMms
665   * @systemapi Hide this for inner system use.
666   * @since 8
667   */
668  function decodeMms(mmsFilePathName: string | Array<number>): Promise<MmsInformation>;
669
670  /**
671   * Encode the message content.
672   *
673   * @param { MmsInformation } mms - Indicates MMS messages.
674   * @param { AsyncCallback<Array<number>> } callback - Indicates the callback for getting the result of MMS encoding.
675   * @throws { BusinessError } 202 - Non-system applications use system APIs.
676   * @throws { BusinessError } 401 - Parameter error.
677   * @throws { BusinessError } 8300001 - Invalid parameter value.
678   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
679   * @throws { BusinessError } 8300003 - System internal error.
680   * @throws { BusinessError } 8300999 - Unknown error code.
681   * @syscap SystemCapability.Telephony.SmsMms
682   * @systemapi Hide this for inner system use.
683   * @since 8
684   */
685  function encodeMms(mms: MmsInformation, callback: AsyncCallback<Array<number>>): void;
686
687  /**
688   * Encode the message content.
689   *
690   * @param { MmsInformation } mms - Indicates MMS messages.
691   * @returns { Promise<Array<number>> } Returns the result of MMS encoding.
692   * @throws { BusinessError } 202 - Non-system applications use system APIs.
693   * @throws { BusinessError } 401 - Parameter error.
694   * @throws { BusinessError } 8300001 - Invalid parameter value.
695   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
696   * @throws { BusinessError } 8300003 - System internal error.
697   * @throws { BusinessError } 8300999 - Unknown error code.
698   * @syscap SystemCapability.Telephony.SmsMms
699   * @systemapi Hide this for inner system use.
700   * @since 8
701   */
702  function encodeMms(mms: MmsInformation): Promise<Array<number>>;
703
704  /**
705   * Obtains the default SIM ID for sending SMS messages.
706   *
707   * @param { AsyncCallback<number> } callback - Returns the SIM ID of the default sms sim and
708   * SIM ID will increase from 1.
709   * @throws { BusinessError } 401 - Parameter error.
710   * @throws { BusinessError } 8300001 - Invalid parameter value.
711   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
712   * @throws { BusinessError } 8300003 - System internal error.
713   * @throws { BusinessError } 8300004 - Do not have sim card.
714   * @throws { BusinessError } 8300999 - Unknown error code.
715   * @throws { BusinessError } 8301001 - SIM card is not activated.
716   * @syscap SystemCapability.Telephony.SmsMms
717   * @since 10
718   */
719  function getDefaultSmsSimId(callback: AsyncCallback<number>): void;
720
721  /**
722   * Obtains the default SIM ID for sending SMS messages.
723   *
724   * @returns { Promise<number> } Returns the SIM ID of the default sms sim and
725   * SIM ID will increase from 1.
726   * @throws { BusinessError } 8300001 - Invalid parameter value.
727   * @throws { BusinessError } 8300002 - Operation failed. Cannot connect to service.
728   * @throws { BusinessError } 8300003 - System internal error.
729   * @throws { BusinessError } 8300004 - Do not have sim card.
730   * @throws { BusinessError } 8300999 - Unknown error code.
731   * @throws { BusinessError } 8301001 - SIM card is not activated.
732   * @syscap SystemCapability.Telephony.SmsMms
733   * @since 10
734   */
735  function getDefaultSmsSimId(): Promise<number>;
736
737  /**
738   * Defines the MMS message information.
739   *
740   * @interface MmsInformation
741   * @syscap SystemCapability.Telephony.SmsMms
742   * @systemapi Hide this for inner system use.
743   * @since 8
744   */
745  export interface MmsInformation {
746    /**
747     * Indicates the message type for the MMS message.
748     *
749     * @type { MessageType }
750     * @syscap SystemCapability.Telephony.SmsMms
751     * @systemapi Hide this for inner system use.
752     * @since 8
753     */
754    messageType: MessageType;
755
756    /**
757     * Indicates the PDU header type for the MMS message.
758     *
759     * @type { MmsSendReq | MmsSendConf | MmsNotificationInd | MmsRespInd | MmsRetrieveConf | MmsAcknowledgeInd |
760     * MmsDeliveryInd | MmsReadOrigInd | MmsReadRecInd }
761     * @syscap SystemCapability.Telephony.SmsMms
762     * @systemapi Hide this for inner system use.
763     * @since 8
764     */
765    mmsType: MmsSendReq | MmsSendConf | MmsNotificationInd | MmsRespInd | MmsRetrieveConf | MmsAcknowledgeInd | MmsDeliveryInd | MmsReadOrigInd | MmsReadRecInd;
766
767    /**
768     * Indicates the attachment for the MMS message.
769     *
770     * @type { ?Array<MmsAttachment> }
771     * @syscap SystemCapability.Telephony.SmsMms
772     * @systemapi Hide this for inner system use.
773     * @since 8
774     */
775    attachment?: Array<MmsAttachment>;
776  }
777
778  /**
779   * Defines an MMS message sending request.
780   *
781   * @interface MmsSendReq
782   * @syscap SystemCapability.Telephony.SmsMms
783   * @systemapi Hide this for inner system use.
784   * @since 8
785   */
786  export interface MmsSendReq {
787    /**
788     * Indicates the source address for the MMS message sending request.
789     *
790     * @type { MmsAddress }
791     * @syscap SystemCapability.Telephony.SmsMms
792     * @systemapi Hide this for inner system use.
793     * @since 8
794     */
795    from: MmsAddress;
796
797    /**
798     * Indicates the transaction ID for the MMS message sending request.
799     *
800     * @type { string }
801     * @syscap SystemCapability.Telephony.SmsMms
802     * @systemapi Hide this for inner system use.
803     * @since 8
804     */
805    transactionId: string;
806
807    /**
808     * Indicates the content type for the MMS message sending request.
809     *
810     * @type { string }
811     * @syscap SystemCapability.Telephony.SmsMms
812     * @systemapi Hide this for inner system use.
813     * @since 8
814     */
815    contentType: string;
816
817    /**
818     * Indicates the version for the MMS message sending request.
819     *
820     * @type { MmsVersionType }
821     * @syscap SystemCapability.Telephony.SmsMms
822     * @systemapi Hide this for inner system use.
823     * @since 8
824     */
825    version: MmsVersionType;
826
827    /**
828     * Indicates the destination address for the MMS message sending request.
829     *
830     * @type { ?Array<MmsAddress> }
831     * @syscap SystemCapability.Telephony.SmsMms
832     * @systemapi Hide this for inner system use.
833     * @since 8
834     */
835    to?: Array<MmsAddress>;
836
837    /**
838     * Indicates the date for the MMS message sending request.
839     *
840     * @type { ?number }
841     * @syscap SystemCapability.Telephony.SmsMms
842     * @systemapi Hide this for inner system use.
843     * @since 8
844     */
845    date?: number;
846
847    /**
848     * Indicates the carbon copy address for the MMS message sending request.
849     *
850     * @type { ?Array<MmsAddress> }
851     * @syscap SystemCapability.Telephony.SmsMms
852     * @systemapi Hide this for inner system use.
853     * @since 8
854     */
855    cc?: Array<MmsAddress>;
856
857    /**
858     * Indicates the blind carbon copy address for the MMS message sending request.
859     *
860     * @type { ?Array<MmsAddress> }
861     * @syscap SystemCapability.Telephony.SmsMms
862     * @systemapi Hide this for inner system use.
863     * @since 8
864     */
865    bcc?: Array<MmsAddress>;
866
867    /**
868     * Indicates the subject for the MMS message sending request.
869     *
870     * @type { ?string }
871     * @syscap SystemCapability.Telephony.SmsMms
872     * @systemapi Hide this for inner system use.
873     * @since 8
874     */
875    subject?: string;
876
877    /**
878     * Indicates the message class for the MMS message sending request.
879     *
880     * @type { ?number }
881     * @syscap SystemCapability.Telephony.SmsMms
882     * @systemapi Hide this for inner system use.
883     * @since 8
884     */
885    messageClass?: number;
886
887    /**
888     * Indicates the expiration for the MMS message sending request.
889     *
890     * @type { ?number }
891     * @syscap SystemCapability.Telephony.SmsMms
892     * @systemapi Hide this for inner system use.
893     * @since 8
894     */
895    expiry?: number;
896
897    /**
898     * Indicates the priority for the MMS message sending request.
899     *
900     * @type { ?MmsPriorityType }
901     * @syscap SystemCapability.Telephony.SmsMms
902     * @systemapi Hide this for inner system use.
903     * @since 8
904     */
905    priority?: MmsPriorityType;
906
907    /**
908     * Indicates the sender visibility for the MMS message sending request.
909     *
910     * @type { ?number }
911     * @syscap SystemCapability.Telephony.SmsMms
912     * @systemapi Hide this for inner system use.
913     * @since 8
914     */
915    senderVisibility?: number;
916
917    /**
918     * Indicates the delivery report for the MMS message sending request.
919     *
920     * @type { ?number }
921     * @syscap SystemCapability.Telephony.SmsMms
922     * @systemapi Hide this for inner system use.
923     * @since 8
924     */
925    deliveryReport?: number;
926
927    /**
928     * Indicates the read report for the MMS message sending request.
929     *
930     * @type { ?number }
931     * @syscap SystemCapability.Telephony.SmsMms
932     * @systemapi Hide this for inner system use.
933     * @since 8
934     */
935    readReport?: number;
936  }
937
938  /**
939   * Defines the MMS message sending configuration.
940   *
941   * @interface MmsSendConf
942   * @syscap SystemCapability.Telephony.SmsMms
943   * @systemapi Hide this for inner system use.
944   * @since 8
945   */
946  export interface MmsSendConf {
947    /**
948     * Indicates the response status for the MMS message sending configuration.
949     *
950     * @type { number }
951     * @syscap SystemCapability.Telephony.SmsMms
952     * @systemapi Hide this for inner system use.
953     * @since 8
954     */
955    responseState: number;
956
957    /**
958     * Indicates the transaction ID for the MMS message sending configuration.
959     *
960     * @type { string }
961     * @syscap SystemCapability.Telephony.SmsMms
962     * @systemapi Hide this for inner system use.
963     * @since 8
964     */
965    transactionId: string;
966
967    /**
968     * Indicates the version for the MMS message sending configuration.
969     *
970     * @type { MmsVersionType }
971     * @syscap SystemCapability.Telephony.SmsMms
972     * @systemapi Hide this for inner system use.
973     * @since 8
974     */
975    version: MmsVersionType;
976
977    /**
978     * Indicates the message ID for the MMS message sending configuration.
979     *
980     * @type { ?string }
981     * @syscap SystemCapability.Telephony.SmsMms
982     * @systemapi Hide this for inner system use.
983     * @since 8
984     */
985    messageId?: string;
986  }
987
988  /**
989   * Defines an MMS notification indication.
990   *
991   * @interface MmsNotificationInd
992   * @syscap SystemCapability.Telephony.SmsMms
993   * @systemapi Hide this for inner system use.
994   * @since 8
995   */
996  export interface MmsNotificationInd {
997    /**
998     * Indicates the transaction ID for the MMS notification indication.
999     *
1000     * @type { string }
1001     * @syscap SystemCapability.Telephony.SmsMms
1002     * @systemapi Hide this for inner system use.
1003     * @since 8
1004     */
1005    transactionId: string;
1006
1007    /**
1008     * Indicates the message class for the MMS notification indication.
1009     *
1010     * @type { number }
1011     * @syscap SystemCapability.Telephony.SmsMms
1012     * @systemapi Hide this for inner system use.
1013     * @since 8
1014     */
1015    messageClass: number;
1016
1017    /**
1018     * Indicates the message size for the MMS notification indication.
1019     *
1020     * @type { number }
1021     * @syscap SystemCapability.Telephony.SmsMms
1022     * @systemapi Hide this for inner system use.
1023     * @since 8
1024     */
1025    messageSize: number;
1026
1027    /**
1028     * Indicates the expiration for the MMS notification indication.
1029     *
1030     * @type { number }
1031     * @syscap SystemCapability.Telephony.SmsMms
1032     * @systemapi Hide this for inner system use.
1033     * @since 8
1034     */
1035    expiry: number;
1036
1037    /**
1038     * Indicates the content location for the MMS notification indication.
1039     *
1040     * @type { string }
1041     * @syscap SystemCapability.Telephony.SmsMms
1042     * @systemapi Hide this for inner system use.
1043     * @since 8
1044     */
1045    contentLocation: string;
1046
1047    /**
1048     * Indicates the version for the MMS notification indication.
1049     *
1050     * @type { MmsVersionType }
1051     * @syscap SystemCapability.Telephony.SmsMms
1052     * @systemapi Hide this for inner system use.
1053     * @since 8
1054     */
1055    version: MmsVersionType;
1056
1057    /**
1058     * Indicates the source address for the MMS notification indication.
1059     *
1060     * @type { ?MmsAddress }
1061     * @syscap SystemCapability.Telephony.SmsMms
1062     * @systemapi Hide this for inner system use.
1063     * @since 8
1064     */
1065    from?: MmsAddress;
1066
1067    /**
1068     * Indicates the subject for the MMS notification indication.
1069     *
1070     * @type { ?string }
1071     * @syscap SystemCapability.Telephony.SmsMms
1072     * @systemapi Hide this for inner system use.
1073     * @since 8
1074     */
1075    subject?: string;
1076
1077    /**
1078     * Indicates the status report for the MMS notification indication.
1079     *
1080     * @type { ?number }
1081     * @syscap SystemCapability.Telephony.SmsMms
1082     * @systemapi Hide this for inner system use.
1083     * @since 8
1084     */
1085    deliveryReport?: number;
1086
1087    /**
1088     * Indicates the content class for the MMS notification indication.
1089     *
1090     * @type { ?number }
1091     * @syscap SystemCapability.Telephony.SmsMms
1092     * @systemapi Hide this for inner system use.
1093     * @since 8
1094     */
1095    contentClass?: number;
1096  }
1097
1098  /**
1099   * Defines an MMS response indication.
1100   *
1101   * @interface MmsRespInd
1102   * @syscap SystemCapability.Telephony.SmsMms
1103   * @systemapi Hide this for inner system use.
1104   * @since 8
1105   */
1106  export interface MmsRespInd {
1107    /**
1108     * Indicates the event ID for the MMS response indication.
1109     *
1110     * @type { string }
1111     * @syscap SystemCapability.Telephony.SmsMms
1112     * @systemapi Hide this for inner system use.
1113     * @since 8
1114     */
1115    transactionId: string;
1116
1117    /**
1118     * Indicates the status for the MMS response indication.
1119     *
1120     * @type { number }
1121     * @syscap SystemCapability.Telephony.SmsMms
1122     * @systemapi Hide this for inner system use.
1123     * @since 8
1124     */
1125    status: number;
1126
1127    /**
1128     * Indicates the version for the MMS response indication.
1129     *
1130     * @type { MmsVersionType }
1131     * @syscap SystemCapability.Telephony.SmsMms
1132     * @systemapi Hide this for inner system use.
1133     * @since 8
1134     */
1135    version: MmsVersionType;
1136
1137    /**
1138     * Indicates the report allowed for the MMS response indication.
1139     *
1140     * @type { ?ReportType }
1141     * @syscap SystemCapability.Telephony.SmsMms
1142     * @systemapi Hide this for inner system use.
1143     * @since 8
1144     */
1145    reportAllowed?: ReportType;
1146  }
1147
1148  /**
1149   * Defines the MMS message retrieval configuration.
1150   *
1151   * @interface MmsRetrieveConf
1152   * @syscap SystemCapability.Telephony.SmsMms
1153   * @systemapi Hide this for inner system use.
1154   * @since 8
1155   */
1156  export interface MmsRetrieveConf {
1157    /**
1158     * Indicates the transaction ID for the MMS message retrieval configuration.
1159     *
1160     * @type { string }
1161     * @syscap SystemCapability.Telephony.SmsMms
1162     * @systemapi Hide this for inner system use.
1163     * @since 8
1164     */
1165    transactionId: string;
1166
1167    /**
1168     * Indicates the message ID for the MMS message retrieval configuration.
1169     *
1170     * @type { string }
1171     * @syscap SystemCapability.Telephony.SmsMms
1172     * @systemapi Hide this for inner system use.
1173     * @since 8
1174     */
1175    messageId: string;
1176
1177    /**
1178     * Indicates the date for the MMS message retrieval configuration.
1179     *
1180     * @type { number }
1181     * @syscap SystemCapability.Telephony.SmsMms
1182     * @systemapi Hide this for inner system use.
1183     * @since 8
1184     */
1185    date: number;
1186
1187    /**
1188     * Indicates the content type for the MMS message retrieval configuration.
1189     *
1190     * @type { string }
1191     * @syscap SystemCapability.Telephony.SmsMms
1192     * @systemapi Hide this for inner system use.
1193     * @since 8
1194     */
1195    contentType: string;
1196
1197    /**
1198     * Indicates the destination address for the MMS message retrieval configuration.
1199     *
1200     * @type { Array<MmsAddress> }
1201     * @syscap SystemCapability.Telephony.SmsMms
1202     * @systemapi Hide this for inner system use.
1203     * @since 8
1204     */
1205    to: Array<MmsAddress>;
1206
1207    /**
1208     * Indicates the version for the MMS message retrieval configuration.
1209     *
1210     * @type { MmsVersionType }
1211     * @syscap SystemCapability.Telephony.SmsMms
1212     * @systemapi Hide this for inner system use.
1213     * @since 8
1214     */
1215    version: MmsVersionType;
1216
1217    /**
1218     * Indicates the source address for the MMS message retrieval configuration.
1219     *
1220     * @type { ?MmsAddress }
1221     * @syscap SystemCapability.Telephony.SmsMms
1222     * @systemapi Hide this for inner system use.
1223     * @since 8
1224     */
1225    from?: MmsAddress;
1226
1227    /**
1228     * Indicates the carbon copy address for the MMS message retrieval configuration.
1229     *
1230     * @type { ?Array<MmsAddress> }
1231     * @syscap SystemCapability.Telephony.SmsMms
1232     * @systemapi Hide this for inner system use.
1233     * @since 8
1234     */
1235    cc?: Array<MmsAddress>;
1236
1237    /**
1238     * Indicates the subject for the MMS message retrieval configuration.
1239     *
1240     * @type { ?string }
1241     * @syscap SystemCapability.Telephony.SmsMms
1242     * @systemapi Hide this for inner system use.
1243     * @since 8
1244     */
1245    subject?: string;
1246
1247    /**
1248     * Indicates the priority for the MMS message retrieval configuration.
1249     *
1250     * @type { ?MmsPriorityType }
1251     * @syscap SystemCapability.Telephony.SmsMms
1252     * @systemapi Hide this for inner system use.
1253     * @since 8
1254     */
1255    priority?: MmsPriorityType;
1256
1257    /**
1258     * Indicates the status report for the MMS message retrieval configuration.
1259     *
1260     * @type { ?number }
1261     * @syscap SystemCapability.Telephony.SmsMms
1262     * @systemapi Hide this for inner system use.
1263     * @since 8
1264     */
1265    deliveryReport?: number;
1266
1267    /**
1268     * Indicates the read report for the MMS message retrieval configuration.
1269     *
1270     * @type { ?number }
1271     * @syscap SystemCapability.Telephony.SmsMms
1272     * @systemapi Hide this for inner system use.
1273     * @since 8
1274     */
1275    readReport?: number;
1276
1277    /**
1278     * Indicates the retrieval status for the MMS message retrieval configuration.
1279     *
1280     * @type { ?number }
1281     * @syscap SystemCapability.Telephony.SmsMms
1282     * @systemapi Hide this for inner system use.
1283     * @since 8
1284     */
1285    retrieveStatus?: number;
1286
1287    /**
1288     * Indicates the retrieval text for the MMS message retrieval configuration.
1289     *
1290     * @type { ?string }
1291     * @syscap SystemCapability.Telephony.SmsMms
1292     * @systemapi Hide this for inner system use.
1293     * @since 8
1294     */
1295    retrieveText?: string;
1296  }
1297
1298  /**
1299   * Defines an MMS confirmation indication.
1300   *
1301   * @interface MmsAcknowledgeInd
1302   * @syscap SystemCapability.Telephony.SmsMms
1303   * @systemapi Hide this for inner system use.
1304   * @since 8
1305   */
1306  export interface MmsAcknowledgeInd {
1307    /**
1308     * Indicates the transaction ID for the MMS confirmation indication.
1309     *
1310     * @type { string }
1311     * @syscap SystemCapability.Telephony.SmsMms
1312     * @systemapi Hide this for inner system use.
1313     * @since 8
1314     */
1315    transactionId: string;
1316
1317    /**
1318     * Indicates the version for the MMS confirmation indication.
1319     *
1320     * @type { MmsVersionType }
1321     * @syscap SystemCapability.Telephony.SmsMms
1322     * @systemapi Hide this for inner system use.
1323     * @since 8
1324     */
1325    version: MmsVersionType;
1326
1327    /**
1328     * Indicates the report allowed for the MMS confirmation indication.
1329     *
1330     * @type { ?ReportType }
1331     * @syscap SystemCapability.Telephony.SmsMms
1332     * @systemapi Hide this for inner system use.
1333     * @since 8
1334     */
1335    reportAllowed?: ReportType;
1336  }
1337
1338  /**
1339   * Defines an MMS message delivery indication.
1340   *
1341   * @interface MmsDeliveryInd
1342   * @syscap SystemCapability.Telephony.SmsMms
1343   * @systemapi Hide this for inner system use.
1344   * @since 8
1345   */
1346  export interface MmsDeliveryInd {
1347    /**
1348     * Indicates the message ID for the MMS message delivery indication.
1349     *
1350     * @type { string }
1351     * @syscap SystemCapability.Telephony.SmsMms
1352     * @systemapi Hide this for inner system use.
1353     * @since 8
1354     */
1355    messageId: string;
1356
1357    /**
1358     * Indicates the date for the MMS message delivery indication.
1359     *
1360     * @type { number }
1361     * @syscap SystemCapability.Telephony.SmsMms
1362     * @systemapi Hide this for inner system use.
1363     * @since 8
1364     */
1365    date: number;
1366
1367    /**
1368     * Indicates the destination address for the MMS message delivery indication.
1369     *
1370     * @type { Array<MmsAddress> }
1371     * @syscap SystemCapability.Telephony.SmsMms
1372     * @systemapi Hide this for inner system use.
1373     * @since 8
1374     */
1375    to: Array<MmsAddress>;
1376
1377    /**
1378     * Indicates the status for the MMS message delivery indication.
1379     *
1380     * @type { number }
1381     * @syscap SystemCapability.Telephony.SmsMms
1382     * @systemapi Hide this for inner system use.
1383     * @since 8
1384     */
1385    status: number;
1386
1387    /**
1388     * Indicates the version for the MMS message delivery indication.
1389     *
1390     * @type { MmsVersionType }
1391     * @syscap SystemCapability.Telephony.SmsMms
1392     * @systemapi Hide this for inner system use.
1393     * @since 8
1394     */
1395    version: MmsVersionType;
1396  }
1397
1398  /**
1399   * Defines the original MMS message reading indication.
1400   *
1401   * @interface MmsReadOrigInd
1402   * @syscap SystemCapability.Telephony.SmsMms
1403   * @systemapi Hide this for inner system use.
1404   * @since 8
1405   */
1406  export interface MmsReadOrigInd {
1407    /**
1408     * Indicates the version for the original MMS message reading indication.
1409     *
1410     * @type { MmsVersionType }
1411     * @syscap SystemCapability.Telephony.SmsMms
1412     * @systemapi Hide this for inner system use.
1413     * @since 8
1414     */
1415    version: MmsVersionType;
1416
1417    /**
1418     * Indicates the message ID for the original MMS message reading indication.
1419     *
1420     * @type { string }
1421     * @syscap SystemCapability.Telephony.SmsMms
1422     * @systemapi Hide this for inner system use.
1423     * @since 8
1424     */
1425    messageId: string;
1426
1427    /**
1428     * Indicates the destination address for the original MMS message reading indication.
1429     *
1430     * @type { Array<MmsAddress> }
1431     * @syscap SystemCapability.Telephony.SmsMms
1432     * @systemapi Hide this for inner system use.
1433     * @since 8
1434     */
1435    to: Array<MmsAddress>;
1436
1437    /**
1438     * Indicates the source address for the original MMS message reading indication.
1439     *
1440     * @type { MmsAddress }
1441     * @syscap SystemCapability.Telephony.SmsMms
1442     * @systemapi Hide this for inner system use.
1443     * @since 8
1444     */
1445    from: MmsAddress;
1446
1447    /**
1448     * Indicates the date for the original MMS message reading indication.
1449     *
1450     * @type { number }
1451     * @syscap SystemCapability.Telephony.SmsMms
1452     * @systemapi Hide this for inner system use.
1453     * @since 8
1454     */
1455    date: number;
1456
1457    /**
1458     * Indicates the read status for the original MMS message reading indication.
1459     *
1460     * @type { number }
1461     * @syscap SystemCapability.Telephony.SmsMms
1462     * @systemapi Hide this for inner system use.
1463     * @since 8
1464     */
1465    readStatus: number;
1466  }
1467
1468  /**
1469   * Defines the MMS message reading indication.
1470   *
1471   * @interface MmsReadRecInd
1472   * @syscap SystemCapability.Telephony.SmsMms
1473   * @systemapi Hide this for inner system use.
1474   * @since 8
1475   */
1476  export interface MmsReadRecInd {
1477    /**
1478     * Indicates the version for the MMS message reading indication.
1479     *
1480     * @type { MmsVersionType }
1481     * @syscap SystemCapability.Telephony.SmsMms
1482     * @systemapi Hide this for inner system use.
1483     * @since 8
1484     */
1485    version: MmsVersionType;
1486
1487    /**
1488     * Indicates the message ID for the MMS message reading indication.
1489     *
1490     * @type { string }
1491     * @syscap SystemCapability.Telephony.SmsMms
1492     * @systemapi Hide this for inner system use.
1493     * @since 8
1494     */
1495    messageId: string;
1496
1497    /**
1498     * Indicates the destination address for the MMS message reading indication.
1499     *
1500     * @type { Array<MmsAddress> }
1501     * @syscap SystemCapability.Telephony.SmsMms
1502     * @systemapi Hide this for inner system use.
1503     * @since 8
1504     */
1505    to: Array<MmsAddress>;
1506
1507    /**
1508     * Indicates the source address for the MMS message reading indication.
1509     *
1510     * @type { MmsAddress }
1511     * @syscap SystemCapability.Telephony.SmsMms
1512     * @systemapi Hide this for inner system use.
1513     * @since 8
1514     */
1515    from: MmsAddress;
1516
1517    /**
1518     * Indicates the read status for the MMS message reading indication.
1519     *
1520     * @type { number }
1521     * @syscap SystemCapability.Telephony.SmsMms
1522     * @systemapi Hide this for inner system use.
1523     * @since 8
1524     */
1525    readStatus: number;
1526
1527    /**
1528     * Indicates the date for the MMS message reading indication.
1529     *
1530     * @type { ?number }
1531     * @syscap SystemCapability.Telephony.SmsMms
1532     * @systemapi Hide this for inner system use.
1533     * @since 8
1534     */
1535    date?: number;
1536  }
1537
1538  /**
1539   * Defines the attachment of an MMS message.
1540   *
1541   * @interface MmsAttachment
1542   * @syscap SystemCapability.Telephony.SmsMms
1543   * @systemapi Hide this for inner system use.
1544   * @since 8
1545   */
1546  export interface MmsAttachment {
1547    /**
1548     * Indicates the content ID for the attachment.
1549     *
1550     * @type { string }
1551     * @syscap SystemCapability.Telephony.SmsMms
1552     * @systemapi Hide this for inner system use.
1553     * @since 8
1554     */
1555    contentId: string;
1556
1557    /**
1558     * Indicates the content location.
1559     *
1560     * @type { string }
1561     * @syscap SystemCapability.Telephony.SmsMms
1562     * @systemapi Hide this for inner system use.
1563     * @since 8
1564     */
1565    contentLocation: string;
1566
1567    /**
1568     * Indicates the content disposition for the attachment.
1569     *
1570     * @type { DispositionType }
1571     * @syscap SystemCapability.Telephony.SmsMms
1572     * @systemapi Hide this for inner system use.
1573     * @since 8
1574     */
1575    contentDisposition: DispositionType;
1576
1577    /**
1578     * Indicates the encoding for content transfer.
1579     *
1580     * @type { string }
1581     * @syscap SystemCapability.Telephony.SmsMms
1582     * @systemapi Hide this for inner system use.
1583     * @since 8
1584     */
1585    contentTransferEncoding: string;
1586
1587    /**
1588     * Indicates the content type for the attachment.
1589     *
1590     * @type { string }
1591     * @syscap SystemCapability.Telephony.SmsMms
1592     * @systemapi Hide this for inner system use.
1593     * @since 8
1594     */
1595    contentType: string;
1596
1597    /**
1598     * Indicates whether the synchronized multimedia integration language is used.
1599     *
1600     * @type { boolean }
1601     * @syscap SystemCapability.Telephony.SmsMms
1602     * @systemapi Hide this for inner system use.
1603     * @since 8
1604     */
1605    isSmil: boolean;
1606
1607    /**
1608     * Indicates the path for the attachment.
1609     *
1610     * @type { ?string }
1611     * @syscap SystemCapability.Telephony.SmsMms
1612     * @systemapi Hide this for inner system use.
1613     * @since 8
1614     */
1615    path?: string;
1616
1617    /**
1618     * Indicates whether the message is in the buffer.
1619     *
1620     * @type { ?Array<number> }
1621     * @syscap SystemCapability.Telephony.SmsMms
1622     * @systemapi Hide this for inner system use.
1623     * @since 8
1624     */
1625    inBuff?: Array<number>;
1626
1627    /**
1628     * Indicates the file name for the attachment.
1629     *
1630     * @type { ?string }
1631     * @syscap SystemCapability.Telephony.SmsMms
1632     * @systemapi Hide this for inner system use.
1633     * @since 8
1634     */
1635    fileName?: string;
1636
1637    /**
1638     * Indicates the character set for the attachment.
1639     *
1640     * @type { ?MmsCharSets }
1641     * @syscap SystemCapability.Telephony.SmsMms
1642     * @systemapi Hide this for inner system use.
1643     * @since 8
1644     */
1645    charset?: MmsCharSets;
1646  }
1647
1648  /**
1649   * Defines an MMSC address.
1650   *
1651   * @interface MmsAddress
1652   * @syscap SystemCapability.Telephony.SmsMms
1653   * @systemapi Hide this for inner system use.
1654   * @since 8
1655   */
1656  export interface MmsAddress {
1657    /**
1658     * Indicates the network address for the MMSC address.
1659     *
1660     * @type { string }
1661     * @syscap SystemCapability.Telephony.SmsMms
1662     * @systemapi Hide this for inner system use.
1663     * @since 8
1664     */
1665    address: string;
1666
1667    /**
1668     * Indicates the character set for the MMSC address.
1669     *
1670     * @type { MmsCharSets }
1671     * @syscap SystemCapability.Telephony.SmsMms
1672     * @systemapi Hide this for inner system use.
1673     * @since 8
1674     */
1675    charset: MmsCharSets;
1676  }
1677
1678  /**
1679   * Enumerates message type.
1680   *
1681   * @enum { number }
1682   * @syscap SystemCapability.Telephony.SmsMms
1683   * @systemapi Hide this for inner system use.
1684   * @since 8
1685   */
1686  export enum MessageType {
1687    /**
1688     * Indicates an MMS message sending request.
1689     *
1690     * @syscap SystemCapability.Telephony.SmsMms
1691     * @systemapi Hide this for inner system use.
1692     * @since 8
1693     */
1694    TYPE_MMS_SEND_REQ = 128,
1695
1696    /**
1697     * Indicates an MMS message sending configuration.
1698     *
1699     * @syscap SystemCapability.Telephony.SmsMms
1700     * @systemapi Hide this for inner system use.
1701     * @since 8
1702     */
1703    TYPE_MMS_SEND_CONF,
1704
1705    /**
1706     * Indicates an MMS notification.
1707     *
1708     * @syscap SystemCapability.Telephony.SmsMms
1709     * @systemapi Hide this for inner system use.
1710     * @since 8
1711     */
1712    TYPE_MMS_NOTIFICATION_IND,
1713
1714    /**
1715     * Indicates an MMS message response.
1716     *
1717     * @syscap SystemCapability.Telephony.SmsMms
1718     * @systemapi Hide this for inner system use.
1719     * @since 8
1720     */
1721    TYPE_MMS_RESP_IND,
1722
1723    /**
1724     * Indicates an MMS message retrieval configuration.
1725     *
1726     * @syscap SystemCapability.Telephony.SmsMms
1727     * @systemapi Hide this for inner system use.
1728     * @since 8
1729     */
1730    TYPE_MMS_RETRIEVE_CONF,
1731
1732    /**
1733     * Indicates the type of multimedia message confirmation index.
1734     *
1735     * @syscap SystemCapability.Telephony.SmsMms
1736     * @systemapi Hide this for inner system use.
1737     * @since 8
1738     */
1739    TYPE_MMS_ACKNOWLEDGE_IND,
1740
1741    /**
1742     * Indicates an MMS message delivery.
1743     *
1744     * @syscap SystemCapability.Telephony.SmsMms
1745     * @systemapi Hide this for inner system use.
1746     * @since 8
1747     */
1748    TYPE_MMS_DELIVERY_IND,
1749
1750    /**
1751     * Indicates an MMS message read report on the recipient side.
1752     *
1753     * @syscap SystemCapability.Telephony.SmsMms
1754     * @systemapi Hide this for inner system use.
1755     * @since 8
1756     */
1757    TYPE_MMS_READ_REC_IND,
1758
1759    /**
1760     * Indicates an original MMS message read report on the originating side.
1761     *
1762     * @syscap SystemCapability.Telephony.SmsMms
1763     * @systemapi Hide this for inner system use.
1764     * @since 8
1765     */
1766    TYPE_MMS_READ_ORIG_IND,
1767  }
1768
1769  /**
1770   * Enumerates MMS message priorities.
1771   *
1772   * @enum { number }
1773   * @syscap SystemCapability.Telephony.SmsMms
1774   * @systemapi Hide this for inner system use.
1775   * @since 8
1776   */
1777  export enum MmsPriorityType {
1778    /**
1779     * Indicates low priority.
1780     *
1781     * @syscap SystemCapability.Telephony.SmsMms
1782     * @systemapi Hide this for inner system use.
1783     * @since 8
1784     */
1785    MMS_LOW = 128,
1786
1787    /**
1788     * Indicates normal priority.
1789     *
1790     * @syscap SystemCapability.Telephony.SmsMms
1791     * @systemapi Hide this for inner system use.
1792     * @since 8
1793     */
1794    MMS_NORMAL,
1795
1796    /**
1797     * Indicates high priority.
1798     *
1799     * @syscap SystemCapability.Telephony.SmsMms
1800     * @systemapi Hide this for inner system use.
1801     * @since 8
1802     */
1803    MMS_HIGH,
1804  }
1805
1806  /**
1807   * Enumerates MMS versions.
1808   *
1809   * @enum { number }
1810   * @syscap SystemCapability.Telephony.SmsMms
1811   * @systemapi Hide this for inner system use.
1812   * @since 8
1813   */
1814  export enum MmsVersionType {
1815    /**
1816     * Indicates MMS version 1_0.
1817     *
1818     * @syscap SystemCapability.Telephony.SmsMms
1819     * @systemapi Hide this for inner system use.
1820     * @since 8
1821     */
1822    MMS_VERSION_1_0 = 0x10,
1823
1824    /**
1825     * Indicates MMS version 1_1.
1826     *
1827     * @syscap SystemCapability.Telephony.SmsMms
1828     * @systemapi Hide this for inner system use.
1829     * @since 8
1830     */
1831    MMS_VERSION_1_1,
1832
1833    /**
1834     * Indicates MMS version 1_2.
1835     *
1836     * @syscap SystemCapability.Telephony.SmsMms
1837     * @systemapi Hide this for inner system use.
1838     * @since 8
1839     */
1840    MMS_VERSION_1_2,
1841
1842    /**
1843     * Indicates MMS version 1_3.
1844     *
1845     * @syscap SystemCapability.Telephony.SmsMms
1846     * @systemapi Hide this for inner system use.
1847     * @since 8
1848     */
1849    MMS_VERSION_1_3,
1850  }
1851
1852  /**
1853   * Enumerates MMS character sets.
1854   *
1855   * @enum { number }
1856   * @syscap SystemCapability.Telephony.SmsMms
1857   * @systemapi Hide this for inner system use.
1858   * @since 8
1859   */
1860  export enum MmsCharSets {
1861    /**
1862     * Indicates the BIG5 format.
1863     *
1864     * @syscap SystemCapability.Telephony.SmsMms
1865     * @systemapi Hide this for inner system use.
1866     * @since 8
1867     */
1868    BIG5 = 0X07EA,
1869
1870    /**
1871     * Indicates the ISO_10646_UCS_2 format.
1872     *
1873     * @syscap SystemCapability.Telephony.SmsMms
1874     * @systemapi Hide this for inner system use.
1875     * @since 8
1876     */
1877    ISO_10646_UCS_2 = 0X03E8,
1878
1879    /**
1880     * Indicates the ISO_8859_1 format.
1881     *
1882     * @syscap SystemCapability.Telephony.SmsMms
1883     * @systemapi Hide this for inner system use.
1884     * @since 8
1885     */
1886    ISO_8859_1 = 0X04,
1887
1888    /**
1889     * Indicates the ISO_8859_2 format.
1890     *
1891     * @syscap SystemCapability.Telephony.SmsMms
1892     * @systemapi Hide this for inner system use.
1893     * @since 8
1894     */
1895    ISO_8859_2,
1896
1897    /**
1898     * Indicates the ISO_8859_3 format.
1899     *
1900     * @syscap SystemCapability.Telephony.SmsMms
1901     * @systemapi Hide this for inner system use.
1902     * @since 8
1903     */
1904    ISO_8859_3,
1905
1906    /**
1907     * Indicates the ISO_8859_4 format.
1908     *
1909     * @syscap SystemCapability.Telephony.SmsMms
1910     * @systemapi Hide this for inner system use.
1911     * @since 8
1912     */
1913    ISO_8859_4,
1914
1915    /**
1916     * Indicates the ISO_8859_5 format.
1917     *
1918     * @syscap SystemCapability.Telephony.SmsMms
1919     * @systemapi Hide this for inner system use.
1920     * @since 8
1921     */
1922    ISO_8859_5,
1923
1924    /**
1925     * Indicates the ISO_8859_6 format.
1926     *
1927     * @syscap SystemCapability.Telephony.SmsMms
1928     * @systemapi Hide this for inner system use.
1929     * @since 8
1930     */
1931    ISO_8859_6,
1932
1933    /**
1934     * Indicates the ISO_8859_7 format.
1935     *
1936     * @syscap SystemCapability.Telephony.SmsMms
1937     * @systemapi Hide this for inner system use.
1938     * @since 8
1939     */
1940    ISO_8859_7,
1941
1942    /**
1943     * Indicates the ISO_8859_8 format.
1944     *
1945     * @syscap SystemCapability.Telephony.SmsMms
1946     * @systemapi Hide this for inner system use.
1947     * @since 8
1948     */
1949    ISO_8859_8,
1950
1951    /**
1952     * Indicates the ISO_8859_9 format.
1953     *
1954     * @syscap SystemCapability.Telephony.SmsMms
1955     * @systemapi Hide this for inner system use.
1956     * @since 8
1957     */
1958    ISO_8859_9,
1959
1960    /**
1961     * Indicates the SHIFT_JIS format.
1962     *
1963     * @syscap SystemCapability.Telephony.SmsMms
1964     * @systemapi Hide this for inner system use.
1965     * @since 8
1966     */
1967    SHIFT_JIS = 0X11,
1968
1969    /**
1970     * Indicates the US_ASCII format.
1971     *
1972     * @syscap SystemCapability.Telephony.SmsMms
1973     * @systemapi Hide this for inner system use.
1974     * @since 8
1975     */
1976    US_ASCII = 0X03,
1977
1978    /**
1979     * Indicates the UTF_8 format.
1980     *
1981     * @syscap SystemCapability.Telephony.SmsMms
1982     * @systemapi Hide this for inner system use.
1983     * @since 8
1984     */
1985    UTF_8 = 0X6A,
1986  }
1987
1988  /**
1989   * Enumerates disposition types.
1990   *
1991   * @enum { number }
1992   * @syscap SystemCapability.Telephony.SmsMms
1993   * @systemapi Hide this for inner system use.
1994   * @since 8
1995   */
1996  export enum DispositionType {
1997    /**
1998     * Indicates the data source type.
1999     *
2000     * @syscap SystemCapability.Telephony.SmsMms
2001     * @systemapi Hide this for inner system use.
2002     * @since 8
2003     */
2004    FROM_DATA = 0,
2005
2006    /**
2007     * Indicates the attachment type.
2008     *
2009     * @syscap SystemCapability.Telephony.SmsMms
2010     * @systemapi Hide this for inner system use.
2011     * @since 8
2012     */
2013    ATTACHMENT,
2014
2015    /**
2016     * Indicates the inlining type.
2017     *
2018     * @syscap SystemCapability.Telephony.SmsMms
2019     * @systemapi Hide this for inner system use.
2020     * @since 8
2021     */
2022    INLINE,
2023  }
2024
2025  /**
2026   * Enumerates report types.
2027   *
2028   * @enum { number }
2029   * @syscap SystemCapability.Telephony.SmsMms
2030   * @systemapi Hide this for inner system use.
2031   * @since 8
2032   */
2033  export enum ReportType {
2034    /**
2035     * Indicates that a report is required.
2036     *
2037     * @syscap SystemCapability.Telephony.SmsMms
2038     * @systemapi Hide this for inner system use.
2039     * @since 8
2040     */
2041    MMS_YES = 128,
2042
2043    /**
2044     * Indicates that a report is not required.
2045     *
2046     * @syscap SystemCapability.Telephony.SmsMms
2047     * @systemapi Hide this for inner system use.
2048     * @since 8
2049     */
2050    MMS_NO,
2051  }
2052
2053  /**
2054   * Defines the cell broadcast configuration options.
2055   *
2056   * @interface CBConfigOptions
2057   * @syscap SystemCapability.Telephony.SmsMms
2058   * @systemapi Hide this for inner system use.
2059   * @since 7
2060   */
2061  export interface CBConfigOptions {
2062    /**
2063     * Indicates the card slot ID for the cell broadcast configuration options.
2064     *
2065     * @type { number }
2066     * @syscap SystemCapability.Telephony.SmsMms
2067     * @systemapi Hide this for inner system use.
2068     * @since 7
2069     */
2070    slotId: number;
2071
2072    /**
2073     * Indicates whether to enable cell broadcast.
2074     *
2075     * @type { boolean }
2076     * @syscap SystemCapability.Telephony.SmsMms
2077     * @systemapi Hide this for inner system use.
2078     * @since 7
2079     */
2080    enable: boolean;
2081
2082    /**
2083     * Indicates the start message ID for the cell broadcast configuration options.
2084     *
2085     * @type { number }
2086     * @syscap SystemCapability.Telephony.SmsMms
2087     * @systemapi Hide this for inner system use.
2088     * @since 7
2089     */
2090    startMessageId: number;
2091
2092    /**
2093     * Indicates the end message ID for the cell broadcast configuration options.
2094     *
2095     * @type { number }
2096     * @syscap SystemCapability.Telephony.SmsMms
2097     * @systemapi Hide this for inner system use.
2098     * @since 7
2099     */
2100    endMessageId: number;
2101
2102    /**
2103     * Indicates the RAN type for the cell broadcast configuration options.
2104     *
2105     * @type { RanType }
2106     * @syscap SystemCapability.Telephony.SmsMms
2107     * @systemapi Hide this for inner system use.
2108     * @since 7
2109     */
2110    ranType: RanType;
2111  }
2112
2113  /**
2114   * Defines the SIM message options.
2115   *
2116   * @interface SimMessageOptions
2117   * @syscap SystemCapability.Telephony.SmsMms
2118   * @systemapi Hide this for inner system use.
2119   * @since 7
2120   */
2121  export interface SimMessageOptions {
2122    /**
2123     * Indicates the card slot ID for the SIM message options.
2124     *
2125     * @type { number }
2126     * @syscap SystemCapability.Telephony.SmsMms
2127     * @systemapi Hide this for inner system use.
2128     * @since 7
2129     */
2130    slotId: number;
2131
2132    /**
2133     * Indicates the short message service center for the SIM message options.
2134     *
2135     * @type { string }
2136     * @syscap SystemCapability.Telephony.SmsMms
2137     * @systemapi Hide this for inner system use.
2138     * @since 7
2139     */
2140    smsc: string;
2141
2142    /**
2143     * Indicates the protocol data unit for the SIM message options.
2144     *
2145     * @type { string }
2146     * @syscap SystemCapability.Telephony.SmsMms
2147     * @systemapi Hide this for inner system use.
2148     * @since 7
2149     */
2150    pdu: string;
2151
2152    /**
2153     * Indicates the status for the SIM message options.
2154     *
2155     * @type { SimMessageStatus }
2156     * @syscap SystemCapability.Telephony.SmsMms
2157     * @systemapi Hide this for inner system use.
2158     * @since 7
2159     */
2160    status: SimMessageStatus;
2161  }
2162
2163  /**
2164   * Defines the updating SIM message options.
2165   *
2166   * @interface UpdateSimMessageOptions
2167   * @syscap SystemCapability.Telephony.SmsMms
2168   * @systemapi Hide this for inner system use.
2169   * @since 7
2170   */
2171  export interface UpdateSimMessageOptions {
2172    /**
2173     * Indicates the card slot ID for the updating SIM message options.
2174     *
2175     * @type { number }
2176     * @syscap SystemCapability.Telephony.SmsMms
2177     * @systemapi Hide this for inner system use.
2178     * @since 7
2179     */
2180    slotId: number;
2181
2182    /**
2183     * Indicates the message index for the updating SIM message options.
2184     *
2185     * @type { number }
2186     * @syscap SystemCapability.Telephony.SmsMms
2187     * @systemapi Hide this for inner system use.
2188     * @since 7
2189     */
2190    msgIndex: number;
2191
2192    /**
2193     * Indicates the new status for the updating SIM message options.
2194     *
2195     * @type { SimMessageStatus }
2196     * @syscap SystemCapability.Telephony.SmsMms
2197     * @systemapi Hide this for inner system use.
2198     * @since 7
2199     */
2200    newStatus: SimMessageStatus;
2201
2202    /**
2203     * Indicates the protocol data unit for the updating SIM message options.
2204     *
2205     * @type { string }
2206     * @syscap SystemCapability.Telephony.SmsMms
2207     * @systemapi Hide this for inner system use.
2208     * @since 7
2209     */
2210    pdu: string;
2211
2212    /**
2213     * Indicates the short message service center for the updating SIM message options.
2214     *
2215     * @type { string }
2216     * @syscap SystemCapability.Telephony.SmsMms
2217     * @systemapi Hide this for inner system use.
2218     * @since 7
2219     */
2220    smsc: string;
2221  }
2222
2223  /**
2224   * Defines an SMS message instance.
2225   *
2226   * @interface ShortMessage
2227   * @syscap SystemCapability.Telephony.SmsMms
2228   * @since 6
2229   */
2230  export interface ShortMessage {
2231    /**
2232     * Indicates the SMS message body.
2233     *
2234     * @type { string }
2235     * @syscap SystemCapability.Telephony.SmsMms
2236     * @since 6
2237     */
2238    visibleMessageBody: string;
2239
2240    /**
2241     * Indicates the address of the sender, which is to be displayed on the UI.
2242     *
2243     * @type { string }
2244     * @syscap SystemCapability.Telephony.SmsMms
2245     * @since 6
2246     */
2247    visibleRawAddress: string;
2248
2249    /**
2250     * Indicates the SMS type.
2251     *
2252     * @type { ShortMessageClass }
2253     * @syscap SystemCapability.Telephony.SmsMms
2254     * @since 6
2255     */
2256    messageClass: ShortMessageClass;
2257
2258    /**
2259     * Indicates the protocol identifier.
2260     *
2261     * @type { number }
2262     * @syscap SystemCapability.Telephony.SmsMms
2263     * @since 6
2264     */
2265    protocolId: number;
2266
2267    /**
2268     * Indicates the short message service center (SMSC) address.
2269     *
2270     * @type { string }
2271     * @syscap SystemCapability.Telephony.SmsMms
2272     * @since 6
2273     */
2274    scAddress: string;
2275
2276    /**
2277     * Indicates the SMSC timestamp.
2278     *
2279     * @type { number }
2280     * @syscap SystemCapability.Telephony.SmsMms
2281     * @since 6
2282     */
2283    scTimestamp: number;
2284
2285    /**
2286     * Indicates whether the received SMS is a "replace short message".
2287     *
2288     * @type { boolean }
2289     * @syscap SystemCapability.Telephony.SmsMms
2290     * @since 6
2291     */
2292    isReplaceMessage: boolean;
2293
2294    /**
2295     * Indicates whether the received SMS contains "TP-Reply-Path".
2296     *
2297     * @type { boolean }
2298     * @syscap SystemCapability.Telephony.SmsMms
2299     * @since 6
2300     */
2301    hasReplyPath: boolean;
2302
2303    /**
2304     * Indicates Protocol Data Units (PDUs) from an SMS message.
2305     *
2306     * @type { Array<number> }
2307     * @syscap SystemCapability.Telephony.SmsMms
2308     * @since 6
2309     */
2310    pdu: Array<number>;
2311
2312    /**
2313     * Indicates the SMS message status from the SMS-STATUS-REPORT message sent by the
2314     * Short Message Service Center (SMSC).
2315     *
2316     * @type { number }
2317     * @syscap SystemCapability.Telephony.SmsMms
2318     * @since 6
2319     */
2320    status: number;
2321
2322    /**
2323     * Indicates whether the current message is SMS-STATUS-REPORT.
2324     *
2325     * @type { boolean }
2326     * @syscap SystemCapability.Telephony.SmsMms
2327     * @since 6
2328     */
2329    isSmsStatusReportMessage: boolean;
2330  }
2331
2332  /**
2333   * Defines a SIM message.
2334   *
2335   * @interface SimShortMessage
2336   * @syscap SystemCapability.Telephony.SmsMms
2337   * @systemapi Hide this for inner system use.
2338   * @since 7
2339   */
2340  export interface SimShortMessage {
2341    /**
2342     * Indicates the SMS message in the SIM.
2343     *
2344     * @type { ShortMessage }
2345     * @syscap SystemCapability.Telephony.SmsMms
2346     * @systemapi Hide this for inner system use.
2347     * @since 7
2348     */
2349    shortMessage: ShortMessage;
2350
2351    /**
2352     * Indicates the storage status of SMS messages in the SIM.
2353     *
2354     * @type { SimMessageStatus }
2355     * @syscap SystemCapability.Telephony.SmsMms
2356     * @systemapi Hide this for inner system use.
2357     * @since 7
2358     */
2359    simMessageStatus: SimMessageStatus;
2360
2361    /**
2362     * Indicates the index of SMS messages in the SIM.
2363     *
2364     * @type { number }
2365     * @syscap SystemCapability.Telephony.SmsMms
2366     * @systemapi Hide this for inner system use.
2367     * @since 7
2368     */
2369    indexOnSim: number;
2370  }
2371
2372  /**
2373   * Defines the SIM message status.
2374   *
2375   * @enum { number }
2376   * @syscap SystemCapability.Telephony.SmsMms
2377   * @systemapi Hide this for inner system use.
2378   * @since 7
2379   */
2380  export enum SimMessageStatus {
2381    /**
2382     * Status free space on SIM.
2383     *
2384     * @syscap SystemCapability.Telephony.SmsMms
2385     * @systemapi Hide this for inner system use.
2386     * @since 7
2387     */
2388    SIM_MESSAGE_STATUS_FREE = 0,
2389
2390    /**
2391     * Indicates a read message.
2392     *
2393     * @syscap SystemCapability.Telephony.SmsMms
2394     * @systemapi Hide this for inner system use.
2395     * @since 7
2396     */
2397    SIM_MESSAGE_STATUS_READ = 1,
2398
2399    /**
2400     * Indicates an unread message.
2401     *
2402     * @syscap SystemCapability.Telephony.SmsMms
2403     * @systemapi Hide this for inner system use.
2404     * @since 7
2405     */
2406    SIM_MESSAGE_STATUS_UNREAD = 3,
2407
2408    /**
2409     * Indicates a sent message (only applicable to SMS).
2410     *
2411     * @syscap SystemCapability.Telephony.SmsMms
2412     * @systemapi Hide this for inner system use.
2413     * @since 7
2414     */
2415    SIM_MESSAGE_STATUS_SENT = 5,
2416
2417    /**
2418     * Indicates an unsent message (only applicable to SMS).
2419     *
2420     * @syscap SystemCapability.Telephony.SmsMms
2421     * @systemapi Hide this for inner system use.
2422     * @since 7
2423     */
2424    SIM_MESSAGE_STATUS_UNSENT = 7,
2425  }
2426
2427  /**
2428   * Enumerates SMS message types.
2429   *
2430   * @enum { number }
2431   * @syscap SystemCapability.Telephony.SmsMms
2432   * @since 6
2433   */
2434  export enum ShortMessageClass {
2435    /**
2436     * Indicates an unknown type.
2437     *
2438     * @syscap SystemCapability.Telephony.SmsMms
2439     * @since 6
2440     */
2441    UNKNOWN,
2442
2443    /**
2444     * Indicates an instant message, which is displayed immediately after being received.
2445     *
2446     * @syscap SystemCapability.Telephony.SmsMms
2447     * @since 6
2448     */
2449    INSTANT_MESSAGE,
2450
2451    /**
2452     * Indicates an SMS message that can be stored on the device or SIM card based on the storage status.
2453     *
2454     * @syscap SystemCapability.Telephony.SmsMms
2455     * @since 6
2456     */
2457    OPTIONAL_MESSAGE,
2458
2459    /**
2460     * Indicates an SMS message containing SIM card information, which is to be stored in a SIM card.
2461     *
2462     * @syscap SystemCapability.Telephony.SmsMms
2463     * @since 6
2464     */
2465    SIM_MESSAGE,
2466
2467    /**
2468     * Indicates an SMS message to be forwarded to another device.
2469     *
2470     * @syscap SystemCapability.Telephony.SmsMms
2471     * @since 6
2472     */
2473    FORWARD_MESSAGE
2474  }
2475
2476  /**
2477   * Provides the options (including callbacks) for sending an SMS message.
2478   *
2479   * @interface SendMessageOptions
2480   * @syscap SystemCapability.Telephony.SmsMms
2481   * @since 6
2482   */
2483  export interface SendMessageOptions {
2484    /**
2485     * Indicates the ID of the SIM card slot used for sending the SMS message.
2486     *
2487     * @type { number }
2488     * @syscap SystemCapability.Telephony.SmsMms
2489     * @since 6
2490     */
2491    slotId: number;
2492
2493    /**
2494     * Indicates the address to which the SMS message is sent.
2495     *
2496     * @type { string }
2497     * @syscap SystemCapability.Telephony.SmsMms
2498     * @since 6
2499     */
2500    destinationHost: string;
2501
2502    /**
2503     * Indicates the SMSC address. If the value is {@code null}, the default SMSC address of the SIM card.
2504     *
2505     * @type { ?string }
2506     * @syscap SystemCapability.Telephony.SmsMms
2507     * @since 6
2508     */
2509    serviceCenter?: string;
2510
2511    /**
2512     * If the content is a string, this is a short message. If the content is a byte array, this is a data message.
2513     *
2514     * @type { string | Array<number> }
2515     * @syscap SystemCapability.Telephony.SmsMms
2516     * @since 6
2517     */
2518    content: string | Array<number>;
2519
2520    /**
2521     * If send data message, destinationPort is mandatory. Otherwise is optional.
2522     *
2523     * @type { ?number }
2524     * @syscap SystemCapability.Telephony.SmsMms
2525     * @since 6
2526     */
2527    destinationPort?: number;
2528
2529    /**
2530     * Indicates the callback invoked after the SMS message is sent.
2531     *
2532     * @type { ?AsyncCallback<ISendShortMessageCallback> }
2533     * @syscap SystemCapability.Telephony.SmsMms
2534     * @since 6
2535     */
2536    sendCallback?: AsyncCallback<ISendShortMessageCallback>;
2537
2538    /**
2539     * Indicates the callback invoked after the SMS message is delivered.
2540     *
2541     * @type { ?AsyncCallback<IDeliveryShortMessageCallback> }
2542     * @syscap SystemCapability.Telephony.SmsMms
2543     * @since 6
2544     */
2545    deliveryCallback?: AsyncCallback<IDeliveryShortMessageCallback>;
2546  }
2547
2548  /**
2549   * Provides the callback for the SMS message sending result.
2550   *
2551   * @interface ISendShortMessageCallback
2552   * @syscap SystemCapability.Telephony.SmsMms
2553   * @since 6
2554   */
2555  export interface ISendShortMessageCallback {
2556    /**
2557     * Indicates the SMS message sending result.
2558     *
2559     * @type { SendSmsResult }
2560     * @syscap SystemCapability.Telephony.SmsMms
2561     * @since 6
2562     */
2563    result: SendSmsResult;
2564
2565    /**
2566     * Indicates the URI to store the sent SMS message.
2567     *
2568     * @type { string }
2569     * @syscap SystemCapability.Telephony.SmsMms
2570     * @since 6
2571     */
2572    url: string;
2573
2574    /**
2575     * Specifies whether this is the last part of a multi-part SMS message.
2576     *
2577     * @type { boolean }
2578     * @syscap SystemCapability.Telephony.SmsMms
2579     * @since 6
2580     */
2581    isLastPart: boolean;
2582  }
2583
2584  /**
2585   * Provides the callback for the SMS message delivery report.
2586   *
2587   * @interface IDeliveryShortMessageCallback
2588   * @syscap SystemCapability.Telephony.SmsMms
2589   * @since 6
2590   */
2591  export interface IDeliveryShortMessageCallback {
2592    /**
2593     * Indicates the SMS delivery report.
2594     *
2595     * @type { Array<number> }
2596     * @syscap SystemCapability.Telephony.SmsMms
2597     * @since 6
2598     */
2599    pdu: Array<number>;
2600  }
2601
2602  /**
2603   * Enumerates SMS message sending results.
2604   *
2605   * @enum { number }
2606   * @syscap SystemCapability.Telephony.SmsMms
2607   * @since 6
2608   */
2609  export enum SendSmsResult {
2610    /**
2611     * Indicates that the SMS message is successfully sent.
2612     *
2613     * @syscap SystemCapability.Telephony.SmsMms
2614     * @since 6
2615     */
2616    SEND_SMS_SUCCESS = 0,
2617
2618    /**
2619     * Indicates that sending the SMS message fails due to an unknown reason.
2620     *
2621     * @syscap SystemCapability.Telephony.SmsMms
2622     * @since 6
2623     */
2624    SEND_SMS_FAILURE_UNKNOWN = 1,
2625
2626    /**
2627     * Indicates that sending the SMS fails because the modem is powered off.
2628     *
2629     * @syscap SystemCapability.Telephony.SmsMms
2630     * @since 6
2631     */
2632    SEND_SMS_FAILURE_RADIO_OFF = 2,
2633
2634    /**
2635     * Indicates that sending the SMS message fails because the network is unavailable
2636     * or does not support sending or reception of SMS messages.
2637     *
2638     * @syscap SystemCapability.Telephony.SmsMms
2639     * @since 6
2640     */
2641    SEND_SMS_FAILURE_SERVICE_UNAVAILABLE = 3
2642  }
2643
2644  /**
2645   * Enumerates RAN type.
2646   *
2647   * @enum { number }
2648   * @syscap SystemCapability.Telephony.SmsMms
2649   * @systemapi Hide this for inner system use.
2650   * @since 7
2651   */
2652  export enum RanType {
2653    /**
2654     * Indicates GSM type.
2655     *
2656     * @syscap SystemCapability.Telephony.SmsMms
2657     * @systemapi Hide this for inner system use.
2658     * @since 7
2659     */
2660    TYPE_GSM = 1,
2661
2662    /**
2663     * Indicates CDMA type.
2664     *
2665     * @syscap SystemCapability.Telephony.SmsMms
2666     * @systemapi Hide this for inner system use.
2667     * @since 7
2668     */
2669    TYPE_CDMA = 2,
2670  }
2671
2672  /**
2673   * Defines the SMS message segment information.
2674   *
2675   * @interface SmsSegmentsInfo
2676   * @syscap SystemCapability.Telephony.SmsMms
2677   * @systemapi Hide this for inner system use.
2678   * @since 8
2679   */
2680  export interface SmsSegmentsInfo {
2681    /**
2682     * Indicates the split count for the SMS message segment information.
2683     *
2684     * @type { number }
2685     * @syscap SystemCapability.Telephony.SmsMms
2686     * @systemapi Hide this for inner system use.
2687     * @since 8
2688     */
2689    splitCount: number;
2690
2691    /**
2692     * Indicates the encoding count for the SMS message segment information.
2693     *
2694     * @type { number }
2695     * @syscap SystemCapability.Telephony.SmsMms
2696     * @systemapi Hide this for inner system use.
2697     * @since 8
2698     */
2699    encodeCount: number;
2700
2701    /**
2702     * Indicates the remaining encoding count for the SMS message segment information.
2703     *
2704     * @type { number }
2705     * @syscap SystemCapability.Telephony.SmsMms
2706     * @systemapi Hide this for inner system use.
2707     * @since 8
2708     */
2709    encodeCountRemaining: number;
2710
2711    /**
2712     * Indicates the encoding scheme for the SMS message segment information.
2713     *
2714     * @type { SmsEncodingScheme }
2715     * @syscap SystemCapability.Telephony.SmsMms
2716     * @systemapi Hide this for inner system use.
2717     * @since 8
2718     */
2719    scheme: SmsEncodingScheme;
2720  }
2721
2722  /**
2723   * Enumerates SMS encoding schemes.
2724   *
2725   * @enum { number }
2726   * @syscap SystemCapability.Telephony.SmsMms
2727   * @systemapi Hide this for inner system use.
2728   * @since 8
2729   */
2730  export enum SmsEncodingScheme {
2731    /**
2732     * Indicates an unknown encoding schemes.
2733     *
2734     * @syscap SystemCapability.Telephony.SmsMms
2735     * @systemapi Hide this for inner system use.
2736     * @since 8
2737     */
2738    SMS_ENCODING_UNKNOWN = 0,
2739
2740    /**
2741     * Indicates that the encoding schemes is 7-digit.
2742     *
2743     * @syscap SystemCapability.Telephony.SmsMms
2744     * @systemapi Hide this for inner system use.
2745     * @since 8
2746     */
2747    SMS_ENCODING_7BIT,
2748
2749    /**
2750     * Indicates that the encoding schemes is 8-digit.
2751     *
2752     * @syscap SystemCapability.Telephony.SmsMms
2753     * @systemapi Hide this for inner system use.
2754     * @since 8
2755     */
2756    SMS_ENCODING_8BIT,
2757
2758    /**
2759     * Indicates that the encoding schemes is 16-digit.
2760     *
2761     * @syscap SystemCapability.Telephony.SmsMms
2762     * @systemapi Hide this for inner system use.
2763     * @since 8
2764     */
2765    SMS_ENCODING_16BIT,
2766  }
2767}
2768
2769export default sms;
2770