harmony 鸿蒙@ohos.telephony.sms (短信服务)

2022-08-09 浏览 (1047)

@ohos.telephony.sms (短信服务)

短信服务提供了管理短信的一些基础能力,包括创建、发送短信,获取、设置发送短信的默认SIM卡槽ID,获取、设置短信服务中心(SMSC)地址,以及检查当前设备是否具备短信发送和接收能力等。

说明:

本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import sms from '@ohos.telephony.sms';

sms.createMessage

createMessage(pdu: Array<number>, specification: string, callback: AsyncCallback<ShortMessage>): void

根据协议数据单元(PDU)和指定的短信协议创建短信实例。使用callback异步回调。

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
pduArray<number>协议数据单元,从收到的信息中获取。
specificationstring短信协议类型。
- 3gpp:表示GSM/UMTS/LTE SMS
- 3gpp2:表示CDMA SMS
callbackAsyncCallback<ShortMessage>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

const specification: string = '3gpp';
// 以数组的形式显示协议数据单元(PDU),类型为number,例如[0x08, 0x91, ...]
const pdu: Array<number> = [0x08, 0x91];
sms.createMessage(pdu, specification, (err: BusinessError, data: sms.ShortMessage) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sms.createMessage

createMessage(pdu: Array<number>, specification: string): Promise<ShortMessage>

根据协议数据单元(PDU)和指定的短信协议创建短信实例。使用Promise异步回调。

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
pduArray<number>协议数据单元,从收到的信息中获取。
specificationstring短信协议类型。
- 3gpp:表示GSM/UMTS/LTE SMS
- 3gpp2:表示CDMA SMS

返回值:

类型说明
Promise<ShortMessage>以Promise形式返回创建的短信实例。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

const specification: string = '3gpp';
// 以数组的形式显示协议数据单元(PDU),类型为number,例如[0x08, 0x91, ...]
const pdu: Array<number> = [0x08, 0x91];
sms.createMessage(pdu, specification).then((data: sms.ShortMessage) => {
    console.log(`createMessage success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`createMessage failed, promise: err->${JSON.stringify(err)}`);
});

sms.sendMessage(deprecated)

sendMessage(options: SendMessageOptions): void

发送短信。

说明:

从 API version 8开始支持,从API version 10开始废弃。建议使用sendShortMessage替代。

需要权限:ohos.permission.SEND_MESSAGES

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
optionsSendMessageOptions发送短信的参数和回调,参考SendMessageOptions

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { AsyncCallback } from '@ohos.base';
import { BusinessError } from '@ohos.base';

let sendCallback: AsyncCallback<sms.ISendShortMessageCallback> = (err: BusinessError, data: sms.ISendShortMessageCallback) => {
    console.log(`sendCallback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); 
}
let deliveryCallback: AsyncCallback<sms.IDeliveryShortMessageCallback> = (err: BusinessError, data: sms.IDeliveryShortMessageCallback) => {
    console.log(`deliveryCallback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`); 
}
let options: sms.SendMessageOptions = {
    slotId: 0,
    content: '短信内容',
    destinationHost: '+861xxxxxxxxxx',
    serviceCenter: '+861xxxxxxxxxx',
    destinationPort: 1000,
    sendCallback: sendCallback,
    deliveryCallback: deliveryCallback
};
sms.sendMessage(options);

sms.sendShortMessage10+

sendShortMessage(options: SendMessageOptions, callback: AsyncCallback<void>): void

发送短信。使用callback异步回调。

需要权限:ohos.permission.SEND_MESSAGES

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
optionsSendMessageOptions发送短信的参数和回调,参考SendMessageOptions
callbackAsyncCallback<void>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { AsyncCallback } from '@ohos.base';
import { BusinessError } from '@ohos.base';

let sendCallback: AsyncCallback<sms.ISendShortMessageCallback> = (err: BusinessError, data: sms.ISendShortMessageCallback) => {
    console.log(`sendCallback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
}
let deliveryCallback: AsyncCallback<sms.IDeliveryShortMessageCallback> = (err: BusinessError, data: sms.IDeliveryShortMessageCallback) => {
    console.log(`deliveryCallback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
}
let options: sms.SendMessageOptions = {
    slotId: 0,
    content: '短信内容',
    destinationHost: '+861xxxxxxxxxx',
    serviceCenter: '+861xxxxxxxxxx',
    destinationPort: 1000,
    sendCallback: sendCallback,
    deliveryCallback: deliveryCallback
};
sms.sendShortMessage(options, (err: BusinessError) => {
    console.log(`callback: err->${JSON.stringify(err)}`);
});

sms.sendShortMessage10+

sendShortMessage(options: SendMessageOptions): Promise<void>

发送短信。使用Promise异步回调。

需要权限:ohos.permission.SEND_MESSAGES

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
optionsSendMessageOptions发送短信的参数和回调,参考SendMessageOptions

返回值:

类型说明
Promise<void>以Promise形式返回发送短信的结果。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { AsyncCallback } from '@ohos.base';
import { BusinessError } from '@ohos.base';

let sendCallback: AsyncCallback<sms.ISendShortMessageCallback> = (err: BusinessError, data: sms.ISendShortMessageCallback) => {
    console.log(`sendCallback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
}
let deliveryCallback: AsyncCallback<sms.IDeliveryShortMessageCallback> = (err: BusinessError, data: sms.IDeliveryShortMessageCallback) => {
    console.log(`deliveryCallback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
}
let options: sms.SendMessageOptions = {
    slotId: 0,
    content: '短信内容',
    destinationHost: '+861xxxxxxxxxx',
    serviceCenter: '+861xxxxxxxxxx',
    destinationPort: 1000,
    sendCallback: sendCallback,
    deliveryCallback: deliveryCallback
};
let promise = sms.sendShortMessage(options);
promise.then(() => {
    console.log(`sendShortMessage success`);
}).catch((err: BusinessError) => {
    console.error(`sendShortMessage failed, promise: err->${JSON.stringify(err)}`);
});

sms.sendMms11+

sendMms(context: Context, mmsParams: MmsParams, callback: AsyncCallback<void>): void

发送彩信。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.SEND_MESSAGES

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
contextContext应用上下文。
FA模型的应用Context定义见Context
Stage模型的应用Context定义见Context
mmsParamsMmsParams发送彩信的参数和回调,参考MmsParams
callbackAsyncCallback<void>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

FA模型示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';
import type Context from './application/BaseContext';

// 获取context
import featureAbility from '@ohos.ability.featureAbility';
let context: Context = featureAbility.getContext();

// 彩信pdu存储路径
const sandBoxPath: string = '/data/storage/el2/base/files/';
let filePath: string  = sandBoxPath + 'SendReq.mms';

// 发送彩信参数(mmsc以联通卡为例)
let mmsPars: sms.MmsParam = {
  slotId : 0,
  mmsc: 'http://mmsc.myuni.com.cn',
  data: filePath,
  mmsConfig: {
   userAgent:'ua',
   userAgentProfile: 'uaprof'
  }
};

// 调用发送接口
sms.sendMms(context, mmsPars, async(err: BusinessError) =>{
  if (err) {
    console.log(`sendMms fail, err : ${String(err)}`);
    return;
  }
  console.log(`sendMms Success`);
})

Stage模型示例:

import UIAbility from '@ohos.app.ability.UIAbility';

// 彩信pdu存储路径
const sandBoxPath = '/data/storage/el2/base/files/';
let filePath  = sandBoxPath + 'SendReq.mms';

// 彩信用户代理、用户代理描述配置。根据运营商要求配置,默认ua,uaprof
let mmsConf = {
  userAgent:'ua',
  userAgentProfile: 'uaprof'
};

// 发送彩信参数(mmsc以联通卡为例)
let mmsPars = {
  slotId : DEFAULT_SLOTID,
  mmsc: 'http://mmsc.myuni.com.cn',
  data: filePath,
  mmsConfig: mmsConf
};

class EntryAbility extends UIAbility {
    onWindowStageCreate(windowStage) {
    sms.sendMms(this.context, mmsPars, async(err) =>{
        if (err) {
            console.log(`sendMms fail, err : ${String(err)}`);
            return;
        }
        console.log(`sendMms Success`);
        })
    }
}

sms.sendMms11+

sendMms(context: Context, mmsParams: MmsParams): Promise<void>

发送彩信。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.SEND_MESSAGES

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
contextContext应用上下文。
FA模型的应用Context定义见Context
Stage模型的应用Context定义见Context
mmsParamsMmsParams发送彩信的参数和回调,参考MmsParams

返回值:

类型说明
Promise<void>以Promise形式返回发送彩信的结果。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

FA模型示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';
import type Context from './application/BaseContext';
// 获取context
import featureAbility from '@ohos.ability.featureAbility';
let context: Context = featureAbility.getContext();

// 彩信pdu存储路径
const sandBoxPath: string = '/data/storage/el2/base/files/';
let filePath: string = sandBoxPath + 'SendReq.mms';

// 发送彩信参数(mmsc以联通卡为例)
let mmsPars: sms.MmsParam = {
  slotId: 0,
  mmsc: 'http://mmsc.myuni.com.cn',
  data: filePath,
  mmsConfig: {
   userAgent:'ua',
   userAgentProfile: 'uaprof'
  }
};

// 调用发送接口
let promise = sms.sendMms(context, mmsPars);
promise.then(() => {
    console.log(`sendMms success`);
}).catch((err: BusinessError) => {
    console.error(`sendMms failed, promise: err->${JSON.stringify(err)}`);
});

Stage模型示例:

import UIAbility from '@ohos.app.ability.UIAbility';

// 彩信pdu存储路径
const sandBoxPath = '/data/storage/el2/base/files/';
let filePath  = sandBoxPath + 'SendReq.mms';

// 彩信用户代理、用户代理描述配置。根据运营商要求配置,默认ua,uaprof
let mmsConf = {
  userAgent:'ua',
  userAgentProfile: 'uaprof'
};

// 发送彩信参数(mmsc以联通卡为例)
let mmsPars = {
  slotId : DEFAULT_SLOTID,
  mmsc: 'http://mmsc.myuni.com.cn',
  data: filePath,
  mmsConfig: mmsConf
};

class EntryAbility extends UIAbility {
    onWindowStageCreate(windowStage) {
    let promise = sms.sendMms(this.context, mmsPars);
    promise.then(() => {
        console.log(`sendMms success`);
    }).catch(err => {
        console.error(`sendMms failed, promise: err->${JSON.stringify(err)}`);
    });
    }
}

sms.downloadMms11+

downloadMms(context: Context, mmsParams: MmsParams, callback: AsyncCallback<void>): void

下载彩信。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.RECEIVE_MMS

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
contextContext应用上下文。
FA模型的应用Context定义见Context
Stage模型的应用Context定义见Context
mmsParamsMmsParams下载彩信的参数和回调,参考MmsParams
callbackAsyncCallback<void>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

FA模型示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';
import type Context from './application/BaseContext';
// 获取context
import featureAbility from '@ohos.ability.featureAbility';
let context: Context = featureAbility.getContext();

// 彩信pdu存储路径
const sandBoxPath: string = '/data/storage/el2/base/files/';
let filePath: string = sandBoxPath + 'RetrieveConf.mms';

// 从WapPush中解析出彩信URL
let wapPushUrl: string = 'URL';

// 下载彩信参数
let mmsPars: sms.MmsParam = {
  slotId: 0,
  mmsc: wapPushUrl,
  data: filePath,
  mmsConfig: {
   userAgent:'ua',
   userAgentProfile: 'uaprof'
  }
};

// 调用下载接口
mms.downloadMms(context, mmsPars, async(err: BusinessError) =>{
  if (err) {
    console.log(`downloadMms fail, err : ${toString(err)}`);
    return;
  }
  console.log(`downloadMms Success`);
}

Stage模型示例:

import UIAbility from '@ohos.app.ability.UIAbility';

// 彩信pdu存储路径
const sandBoxPath = '/data/storage/el2/base/files/';
let filePath  = sandBoxPath + 'RetrieveConf.mms';

// 从WapPush中解析出彩信URL
let wapPushUrl  = 'URL';

// 彩信用户代理、用户代理描述配置。根据运营商要求配置,默认ua,uaprof
let mmsConf = {
  userAgent:'ua',
  userAgentProfile: 'uaprof'
};

// 下载彩信参数
let mmsPars = {
  slotId : DEFAULT_SLOTID,
  mmsc: wapPushUrl,
  data: filePath,
  mmsConfig: mmsConf
};

class EntryAbility extends UIAbility {
    onWindowStageCreate(windowStage) {
    mms.downloadMms(this.context, mmsPars, async(err) =>{
        if (err) {
            console.log(`downloadMms fail, err : ${toString(err)}`);
            return;
        }
        console.log(`downloadMms Success`);
        }
    }
}

sms.downloadMms11+

downloadMms(context: Context, mmsParams: MmsParams): Promise<void>

发送彩信。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.RECEIVE_MMS

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
contextContext应用上下文。
FA模型的应用Context定义见Context
Stage模型的应用Context定义见Context
mmsParamsMmsParams发送彩信的参数和回调,参考MmsParams

返回值:

类型说明
Promise<void>以Promise形式返回发送彩信的结果。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

FA模型示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';
import type Context from './application/BaseContext';
// 获取context
import featureAbility from '@ohos.ability.featureAbility';
let context: Context = featureAbility.getContext();

// 彩信pdu存储路径
const sandBoxPath: string = '/data/storage/el2/base/files/';
let filePath: string = sandBoxPath + 'RetrieveConf.mms';

// 从WapPush中解析出彩信URL
let wapPushUrl: string = 'URL';

// 下载彩信参数
let mmsPars: sms.MmsParam = {
  slotId: 0,
  mmsc: wapPushUrl,
  data: filePath,
  mmsConfig: {
   userAgent:'ua',
   userAgentProfile: 'uaprof'
  }
};

// 调用发送接口
let promise = sms.downloadMms(context, mmsPars);
promise.then(() => {
    console.log(`downloadMms success`);
}).catch((err: BusinessError) => {
    console.error(`downloadMms failed, promise: err->${JSON.stringify(err)}`);
});

Stage模型示例:

import UIAbility from '@ohos.app.ability.UIAbility';

// 彩信pdu存储路径
const sandBoxPath = '/data/storage/el2/base/files/';
let filePath  = sandBoxPath + 'RetrieveConf.mms';

// 从WapPush中解析出彩信URL
let wapPushUrl  = 'URL';

// 彩信用户代理、用户代理描述配置。根据运营商要求配置,默认ua,uaprof
let mmsConf = {
  userAgent:'ua',
  userAgentProfile: 'uaprof'
};

// 下载彩信参数
let mmsPars = {
  slotId : DEFAULT_SLOTID,
  mmsc: wapPushUrl,
  data: filePath,
  mmsConfig: mmsConf
};

class EntryAbility extends UIAbility {
    onWindowStageCreate(windowStage) {
    let promise = sms.downloadMms(this.context, mmsPars);
    promise.then(() => {
        console.log(`downloadMms success`);
    }).catch(err => {
        console.error(`downloadMms failed, promise: err->${JSON.stringify(err)}`);
    });
    }
}

sms.getDefaultSmsSlotId7+

getDefaultSmsSlotId(callback: AsyncCallback<number>): void

获取发送短信的默认SIM卡槽ID。使用callback异步回调。

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
callbackAsyncCallback<number>回调函数。
- 0:卡槽1
- 1:卡槽2

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

sms.getDefaultSmsSlotId((err: BusinessError, data: number) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sms.getDefaultSmsSlotId7+

getDefaultSmsSlotId(): Promise<number>

获取发送短信的默认SIM卡槽ID。使用Promise异步回调。

系统能力:SystemCapability.Telephony.SmsMms

返回值:

类型说明
Promise<number>以Promise形式返回发送短信的默认SIM卡:
- 0:卡槽1
- 1:卡槽2

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

sms.getDefaultSmsSlotId().then((data: number) => {
    console.log(`getDefaultSmsSlotId success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getDefaultSmsSlotId failed, promise: err->${JSON.stringify(err)}`);
});

sms.setDefaultSmsSlotId7+

setDefaultSmsSlotId(slotId: number, callback: AsyncCallback<void>): void

设置发送短信的默认SIM卡槽ID。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.SET_TELEPHONY_STATE

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID。
- 0:卡槽1
- 1:卡槽2
- -1:清除默认配置
callbackAsyncCallback<void>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300004Do not have sim card.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

sms.setDefaultSmsSlotId(0, (err: BusinessError) => {
    console.log(`callback: err->${JSON.stringify(err)}.`);
});

sms.setDefaultSmsSlotId7+

setDefaultSmsSlotId(slotId: number): Promise<void>

设置发送短信的默认SIM卡槽ID。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.SET_TELEPHONY_STATE

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID。
- 0:卡槽1
- 1:卡槽2
- -1:清除默认配置

返回值:

类型说明
Promise<void>以Promise形式异步返回设置结果。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300004Do not have sim card.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

sms.setDefaultSmsSlotId(0).then(() => {
    console.log(`setDefaultSmsSlotId success.`);
}).catch((err: BusinessError) => {
    console.error(`setDefaultSmsSlotId failed, promise: err->${JSON.stringify(err)}`);
});

sms.setSmscAddr7+

setSmscAddr(slotId: number, smscAddr: string, callback: AsyncCallback<void>): void

设置短信服务中心(SMSC)地址。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.SET_TELEPHONY_STATE,该权限为系统权限

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID:
- 0:卡槽1
- 1:卡槽2
smscAddrstring短信服务中心地址。
callbackAsyncCallback<void>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let slotId: number = 0;
let smscAddr: string = '+861xxxxxxxxxx';
sms.setSmscAddr(slotId, smscAddr, (err: BusinessError) => {
      console.log(`callback: err->${JSON.stringify(err)}`);
});

sms.setSmscAddr7+

setSmscAddr(slotId: number, smscAddr: string): Promise<void>

设置短信服务中心(SMSC)地址。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.SET_TELEPHONY_STATE,该权限为系统权限

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID:
- 0:卡槽1
- 1:卡槽2
smscAddrstring短信服务中心地址。

返回值:

类型说明
Promise<void>以Promise形式异步返回设置结果。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let slotId: number = 0;
let smscAddr: string = '+861xxxxxxxxxx';
sms.setSmscAddr(slotId, smscAddr).then(() => {
    console.log(`setSmscAddr success.`);
}).catch((err: BusinessError) => {
    console.error(`setSmscAddr failed, promise: err->${JSON.stringify(err)}`);
});

sms.getSmscAddr7+

getSmscAddr(slotId: number, callback: AsyncCallback<string>): void

获取短信服务中心(SMSC)地址。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.GET_TELEPHONY_STATE,该权限为系统权限

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID:
- 0:卡槽1
- 1:卡槽2
callbackAsyncCallback<string>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let slotId: number = 0;
sms.getSmscAddr(slotId, (err: BusinessError, data: string) => {
      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sms.getSmscAddr7+

getSmscAddr(slotId: number): Promise<string>

获取短信服务中心(SMSC)地址。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.GET_TELEPHONY_STATE,该权限为系统权限

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID:
- 0:卡槽1
- 1:卡槽2

返回值:

类型说明
Promise<string>以Promise形式返回获取短信服务中心地址的结果。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let slotId: number = 0;
sms.getSmscAddr(slotId).then((data: string) => {
    console.log(`getSmscAddr success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getSmscAddr failed, promise: err->${JSON.stringify(err)}`);
});

sms.hasSmsCapability7+

hasSmsCapability(): boolean

检查当前设备是否具备短信发送和接收能力,该方法是同步方法。

系统能力:SystemCapability.Telephony.SmsMms

返回值:

类型说明
boolean- true:设备具备短信发送和接收能力。
- false:设备不具备短信发送和接收能力。
import sms from '@ohos.telephony.sms';

let result = sms.hasSmsCapability(); 
console.log(`hasSmsCapability: ${JSON.stringify(result)}`);

sms.splitMessage8+

splitMessage(content: string, callback: AsyncCallback<Array<string>>): void

将长短信拆分为多个片段。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.SEND_MESSAGES

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
contentstring指示短消息内容,不能为null。
callbackAsyncCallback<Array<string>>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let content: string = "long message";
sms.splitMessage(content, (err: BusinessError, data: string[]) => {
      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sms.splitMessage8+

splitMessage(content: string): Promise<Array<string>>

将长短信拆分为多个片段。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.SEND_MESSAGES

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
contentstring指示短消息内容,不能为null。

返回值:

类型说明
Promise<Array<string>>以Promise形式返回多个片段的的结果。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let content: string = "long message";
let promise = sms.splitMessage(content);
promise.then((data: string[]) => {
    console.log(`splitMessage success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`splitMessage failed, promise: err->${JSON.stringify(err)}`);
});

sms.addSimMessage7+

addSimMessage(options: SimMessageOptions, callback: AsyncCallback<void>): void

添加SIM卡消息。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
optionsSimMessageOptionsSIM卡消息选项。
callbackAsyncCallback<void>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let simMessageOptions: sms.SimMessageOptions = {
    slotId: 0,
    smsc: "test",
    pdu: "xxxxxx",
    status: sms.SimMessageStatus.SIM_MESSAGE_STATUS_READ
};
sms.addSimMessage(simMessageOptions, (err: BusinessError) => {
      console.log(`callback: err->${JSON.stringify(err)}`);
});

sms.addSimMessage7+

addSimMessage(options: SimMessageOptions): Promise<void>

添加SIM卡消息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
optionsSimMessageOptionsSIM卡消息选项。

返回值:

类型说明
Promise<void>以Promise形式返回添加的结果。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let simMessageOptions: sms.SimMessageOptions = {
    slotId: 0,
    smsc: "test",
    pdu: "xxxxxx",
    status: sms.SimMessageStatus.SIM_MESSAGE_STATUS_READ
};
sms.addSimMessage(simMessageOptions).then(() => {
    console.log(`addSimMessage success.`);
}).catch((err: BusinessError) => {
    console.error(`addSimMessage failed, promise: err->${JSON.stringify(err)}`);
});

sms.delSimMessage7+

delSimMessage(slotId: number, msgIndex: number, callback: AsyncCallback<void>): void

删除SIM卡消息。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID:
- 0:卡槽1
- 1:卡槽2
msgIndexnumber消息索引。
callbackAsyncCallback<void>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let slotId: number = 0;
let msgIndex: number = 1;
sms.delSimMessage(slotId, msgIndex, (err: BusinessError) => {
      console.log(`callback: err->${JSON.stringify(err)}`);
});

sms.delSimMessage7+

delSimMessage(slotId: number, msgIndex: number): Promise<void>

删除SIM卡信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID:
- 0:卡槽1
- 1:卡槽2
msgIndexnumber消息索引。

返回值:

类型说明
Promise<void>以Promise形式返回删除的结果。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let slotId: number = 0;
let msgIndex: number = 1;
let promise = sms.delSimMessage(slotId, msgIndex);
promise.then(() => {
    console.log(`delSimMessage success.`);
}).catch((err: BusinessError) => {
    console.error(`delSimMessage failed, promise: err->${JSON.stringify(err)}`);
});

sms.updateSimMessage7+

updateSimMessage(options: UpdateSimMessageOptions, callback: AsyncCallback<void>): void

更新SIM卡消息。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
optionsUpdateSimMessageOptions更新SIM卡消息选项。
callbackAsyncCallback<void>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let updateSimMessageOptions: sms.UpdateSimMessageOptions = {
    slotId: 0,
    msgIndex: 1,
    newStatus: sms.SimMessageStatus.SIM_MESSAGE_STATUS_FREE,
    pdu: "xxxxxxx",
    smsc: "test"
};
sms.updateSimMessage(updateSimMessageOptions, (err: BusinessError) => {
      console.log(`callback: err->${JSON.stringify(err)}`);
});

sms.updateSimMessage7+

updateSimMessage(options: UpdateSimMessageOptions): Promise<void>

更新SIM卡消息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.RECEIVE_SMS,ohos.permission.SEND_MESSAGES

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
optionsUpdateSimMessageOptions更新SIM卡消息选项。

返回值:

类型说明
Promise<void>以Promise形式返回更新的结果。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let updateSimMessageOptions: sms.UpdateSimMessageOptions = {
    slotId: 0,
    msgIndex: 1,
    newStatus: sms.SimMessageStatus.SIM_MESSAGE_STATUS_FREE,
    pdu: "xxxxxxx",
    smsc: "test"
};
let promise = sms.updateSimMessage(updateSimMessageOptions);
promise.then(() => {
    console.log(`updateSimMessage success.`);
}).catch((err: BusinessError) => {
    console.error(`updateSimMessage failed, promise: err->${JSON.stringify(err)}`);
});

sms.getAllSimMessages7+

getAllSimMessages(slotId: number, callback: AsyncCallback<Array<SimShortMessage>>): void

获取所有SIM卡消息。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.RECEIVE_SMS

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID:
- 0:卡槽1
- 1:卡槽2
callbackAsyncCallback<Array<SimShortMessage>>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let slotId: number = 0;
sms.getAllSimMessages(slotId, (err: BusinessError, data: sms.SimShortMessage[]) => {
      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sms.getAllSimMessages7+

getAllSimMessages(slotId: number): Promise<Array<SimShortMessage>>

获取所有SIM卡消息。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.RECEIVE_SMS

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID:
- 0:卡槽1
- 1:卡槽2

返回值:

类型说明
PromiseArray<SimShortMessage>>以Promise形式返回获取的SIM短消息。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let slotId: number = 0;
let promise = sms.getAllSimMessages(slotId);
promise.then((data: sms.SimShortMessage) => {
    console.log(`getAllSimMessages success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getAllSimMessages failed, promise: err->${JSON.stringify(err)}`);
});

sms.setCBConfig7+

setCBConfig(options: CBConfigOptions, callback: AsyncCallback<void>): void

设置小区广播配置。使用callback异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.RECEIVE_SMS

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
optionsCBConfigOptions小区广播配置选项。
callbackAsyncCallback<void>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let cbConfigOptions: sms.CBConfigOptions = {
    slotId: 0,
    enable: true,
    startMessageId: 100,
    endMessageId: 200,
    ranType: sms.RanType.TYPE_GSM
};
sms.setCBConfig(cbConfigOptions, (err: BusinessError) => {
      console.log(`callback: err->${JSON.stringify(err)}`);
});

sms.setCBConfig7+

setCBConfig(options: CBConfigOptions): Promise<void>

设置小区广播配置。使用Promise异步回调。

系统接口: 此接口为系统接口。

需要权限:ohos.permission.RECEIVE_SMS

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
optionsCBConfigOptions小区广播配置选项。

返回值:

类型说明
Promise<void>以Promise形式返回设置的结果。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
201Permission denied.
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let cbConfigOptions: sms.CBConfigOptions = {
    slotId: 0,
    enable: true,
    startMessageId: 100,
    endMessageId: 200,
    ranType: sms.RanType.TYPE_GSM
};
let promise = sms.setCBConfig(cbConfigOptions);
promise.then(() => {
    console.log(`setCBConfig success.`);
}).catch((err: BusinessError) => {
    console.error(`setCBConfig failed, promise: err->${JSON.stringify(err)}`);
});

sms.getSmsSegmentsInfo8+

getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean, callback: AsyncCallback<SmsSegmentsInfo>): void

获取短信段信息。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID:
- 0:卡槽1
- 1:卡槽2
messagestring消息。
force7bitboolean是否使用7 bit编码。
callbackAsyncCallback<SmsSegmentsInfo>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let slotId: number = 0;
sms.getSmsSegmentsInfo(slotId, "message", false, (err: BusinessError, data: sms.SmsSegmentsInfo) => {
      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sms.getSmsSegmentsInfo8+

getSmsSegmentsInfo(slotId: number, message: string, force7bit: boolean): Promise<SmsSegmentsInfo>

获取短信段信息。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID:
- 0:卡槽1
- 1:卡槽2
messagestring消息。
force7bitboolean是否使用7 bit编码。

返回值:

类型说明
Promise<SmsSegmentsInfo>以Promise形式返回短信段信息。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let slotId: number = 0;
let promise = sms.getSmsSegmentsInfo(slotId, "message", false);
promise.then((data: sms.SmsSegmentsInfo) => {
    console.log(`getSmsSegmentsInfo success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getSmsSegmentsInfo failed, promise: err->${JSON.stringify(err)}`);
});

sms.isImsSmsSupported8+

isImsSmsSupported(slotId: number, callback: AsyncCallback<boolean>): void

如果IMS已注册并且在IMS上支持SMS,则支持通过IMS发送SMS。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumberSIM卡槽ID:
- 0:卡槽1
- 1:卡槽2
callbackAsyncCallback<boolean>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let slotId: number = 0;
sms.isImsSmsSupported(slotId, (err: BusinessError, data: boolean) => {
      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sms.isImsSmsSupported8+

isImsSmsSupported(slotId: number): Promise<boolean>

如果IMS已注册并且在IMS上支持SMS,则支持通过IMS发送SMS。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
slotIdnumber卡槽ID。
- 0:卡槽1
- 1:卡槽2

返回值:

类型说明
Promise<boolean>以Promise形式返回结果。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let slotId: number = 0;
let promise = sms.isImsSmsSupported(slotId);
promise.then((data: boolean) => {
    console.log(`isImsSmsSupported success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`isImsSmsSupported failed, promise: err->${JSON.stringify(err)}`);
});

sms.getImsShortMessageFormat8+

getImsShortMessageFormat(callback: AsyncCallback<string>): void

获取IMS上支持的SMS格式。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
callbackAsyncCallback<string>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

sms.getImsShortMessageFormat((err: BusinessError, data: string) => {
      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sms.getImsShortMessageFormat8+

getImsShortMessageFormat(): Promise<string>

获取IMS上支持的SMS格式。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

返回值:

类型说明
Promise<string>以Promise形式返回SMS格式。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
202Non-system applications use system APIs.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

sms.getImsShortMessageFormat().then((data: string) => {
    console.log(`getImsShortMessageFormat success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getImsShortMessageFormat failed, promise: err->${JSON.stringify(err)}`);
});

sms.decodeMms8+

decodeMms(mmsFilePathName: string|Array<number>, callback: AsyncCallback<MmsInformation>): void

彩信解码。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
mmsFilePathNamestring |Array<number>彩信文件路径名。
callbackAsyncCallback<MmsInformation>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let mmsFilePathName: string = "filename";
sms.decodeMms(mmsFilePathName, (err: BusinessError, data: sms.MmsInformation) => {
      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sms.decodeMms8+

decodeMms(mmsFilePathName: string|Array<number>): Promise<MmsInformation>

彩信解码。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
mmsFilePathNamestring |Array<number>彩信文件路径名

返回值:

类型说明
Promise<<MmsInformation>>以Promise形式返回彩信信息。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let mmsFilePathName: string = "filename";
let promise = sms.decodeMms(mmsFilePathName);
promise.then((data: sms.MmsInformation) => {
    console.log(`decodeMms success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`decodeMms failed, promise: err->${JSON.stringify(err)}`);
});

sms.encodeMms8+

encodeMms(mms: MmsInformation, callback: AsyncCallback<Array<number>>): void

彩信编码。使用callback异步回调。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
mmsMmsInformation彩信信息。
callbackAsyncCallback<Array<number>>回调函数。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let mmsAcknowledgeInd: sms.MmsAcknowledgeInd = {
    transactionId: "100",
    version: sms.MmsVersionType.MMS_VERSION_1_0,
    reportAllowed: sms.ReportType.MMS_YES
};
let mmsInformation: sms.MmsInformation = {
    messageType: sms.MessageType.TYPE_MMS_ACKNOWLEDGE_IND,
    mmsType: mmsAcknowledgeInd
};
sms.encodeMms(mmsInformation, (err: BusinessError, data: number[]) => {
      console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sms.encodeMms8+

encodeMms(mms: MmsInformation): Promise<Array<number>>

彩信编码。使用Promise异步回调。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
mmsMmsInformation彩信信息。

返回值:

类型说明
Promise<Array<number>>以Promise形式返回彩信编码后的结果。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
202Non-system applications use system APIs.
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300999Unknown error code.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let mmsAcknowledgeInd: sms.MmsAcknowledgeInd = {
    transactionId: "100",
    version: sms.MmsVersionType.MMS_VERSION_1_0,
    reportAllowed: sms.ReportType.MMS_YES
};
let mmsInformation: sms.MmsInformation = {
    messageType: sms.MessageType.TYPE_MMS_ACKNOWLEDGE_IND,
    mmsType: mmsAcknowledgeInd
};
sms.encodeMms(mmsInformation).then((data: number[]) => {
    console.log(`encodeMms success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`encodeMms failed, promise: err->${JSON.stringify(err)}`);
});

sms.getDefaultSmsSimId10+

getDefaultSmsSimId(callback: AsyncCallback<number>): void

获取发送短信的默认SIM卡ID。使用callback异步回调。

系统能力:SystemCapability.Telephony.SmsMms

参数:

参数名类型必填说明
callbackAsyncCallback<number>回调函数。
与SIM卡绑定,从1开始递增。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
401Parameter error.
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300004Do not have sim card.
8300999Unknown error code.
8301001SIM card is not activated.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

sms.getDefaultSmsSimId((err: BusinessError, data: number) => {
    console.log(`callback: err->${JSON.stringify(err)}, data->${JSON.stringify(data)}`);
});

sms.getDefaultSmsSimId10+

getDefaultSmsSimId(): Promise<number>

获取发送短信的默认SIM卡ID。使用Promise异步回调。

系统能力:SystemCapability.Telephony.SmsMms

返回值:

类型说明
Promise<number>以Promise形式返回发送短信的默认SIM卡ID:
与SIM卡绑定,从1开始递增。

错误码:

以下错误码的详细介绍请参见ohos.telephony(电话子系统)错误码

错误码ID错误信息
8300001Invalid parameter value.
8300002Operation failed. Cannot connect to service.
8300003System internal error.
8300004Do not have sim card.
8300999Unknown error code.
8301001SIM card is not activated.

示例:

import sms from '@ohos.telephony.sms';
import { BusinessError } from '@ohos.base';

let promise = sms.getDefaultSmsSimId();
promise.then((data: number) => {
    console.log(`getDefaultSmsSimId success, promise: data->${JSON.stringify(data)}`);
}).catch((err: BusinessError) => {
    console.error(`getDefaultSmsSimId failed, promise: err->${JSON.stringify(err)}`);
});

ShortMessage

短信实例。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
hasReplyPathboolean收到的短信是否包含“TP-Reply-Path”,默认为false。
“TP-Reply-Path”:设备根据发送SMS消息的短消息中心进行回复。
isReplaceMessageboolean收到的短信是否为“替换短信”,默认为false。
“替换短信”有关详细信息,参见 “3GPP TS 23.040 9.2.3.9”。
isSmsStatusReportMessageboolean当前消息是否为“短信状态报告”,默认为false。
“短信状态报告”是一种特定格式的短信,被用来从Service Center到Mobile Station传送状态报告。
messageClassShortMessageClass短信类型。
pduArray<number>SMS消息中的协议数据单元 (PDU)。
protocolIdnumber发送短信时使用的协议标识。
scAddressstring短消息服务中心(SMSC)地址。
scTimestampnumberSMSC时间戳。
statusnumberSMS-STATUS-REPORT消息中的短信状态指示短信服务中心(SMSC)发送的短信状态。
visibleMessageBodystring短信正文。
visibleRawAddressstring发送者地址。

ShortMessageClass

短信类型。

系统能力:SystemCapability.Telephony.SmsMms

名称说明
UNKNOWN0未知类型。
INSTANT_MESSAGE1即时消息,收到后立即显示。
OPTIONAL_MESSAGE2存储在设备或SIM卡上的短信。
SIM_MESSAGE3包含SIM卡信息的短信,需要存储在SIM卡中。
FORWARD_MESSAGE4要转发到另一台设备的短信。

SendMessageOptions

发送短信的参数和回调。根据SendMessageOptions中的可选参数content的值判断短信类型。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
slotIdnumber用于发送短信的SIM卡槽ID:
- 0:卡槽1
- 1:卡槽2
destinationHoststring短信的发送地址。
contentstring |Array<number>如果内容是字符串,则这是一条文本短信。如果内容是字节数组,则这是一条数据短信。
serviceCenterstring短信中心地址。默认使用SIM卡中的短信中心地址。
destinationPortnumber如果发送数据消息,destinationPort 是必需的。否则是可选的。
sendCallbackAsyncCallback<ISendShortMessageCallback>短信发送结果回调,返回短信发送的结果,参考ISendShortMessageCallback
deliveryCallbackAsyncCallback<IDeliveryShortMessageCallback>短信送达结果回调,返回短信递送报告,参考IDeliveryShortMessageCallback

MmsParams11+

发送彩信的参数。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
slotId11+number用于发送短信的SIM卡槽ID:
- 0:卡槽1
- 1:卡槽2
mmsc11+string彩信中心地址。
data11+string彩信PDU地址。
mmsConfig11+MmsConfig彩信配置文件,参考MmsConfig

MmsConfig11+

彩信配置文件。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
userAgent11+string用户代理。
userAgentProfile11+string用户代理配置。

ISendShortMessageCallback

回调实例。返回短信发送结果、存储已发送短信的URI和是否为长短信的最后一部分。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
isLastPartboolean指定这是否是长短信的最后一部分。true表示这是长短信的最后一部分,false表示不是。默认为false。
resultSendSmsResult短信发送结果。
urlstring存储发送短信的URI。

IDeliveryShortMessageCallback

回调实例,返回短信送达报告。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
pduArray<number>短信送达报告。

SendSmsResult

短信发送结果。

系统能力:SystemCapability.Telephony.SmsMms

名称说明
SEND_SMS_SUCCESS0发送短信成功。
SEND_SMS_FAILURE_UNKNOWN1发送短信失败,原因未知。
SEND_SMS_FAILURE_RADIO_OFF2发送短信失败,原因为调制解调器关机。
SEND_SMS_FAILURE_SERVICE_UNAVAILABLE3发送短信失败,原因为网络不可用、不支持发送或接收短信。

MmsInformation8+

彩信信息。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
messageTypeMessageType消息类型。
mmsTypeMmsSendReq |MmsSendConf |MmsNotificationInd |MmsRespInd |MmsRetrieveConf|MmsAcknowledgeInd|MmsDeliveryInd|MmsReadOrigInd|MmsReadRecIndPDU头类型
attachmentArray<MmsAttachment>附件

MmsSendReq8+

彩信发送请求。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
fromMmsAddress彩信来源
transactionIdstring事务ID
contentTypestring内容类型
versionMmsVersionType版本
toArray<MmsAddress>发送至
datenumber日期
ccArray<MmsAddress>抄送
bccArray<MmsAddress>暗抄送
subjectstring主题
messageClassnumber消息类
expirynumber到期
priorityMmsPriorityType优先
senderVisibilitynumber发件人可见性
deliveryReportnumber交付报告
readReportnumber阅读报告

MmsSendConf8+

彩信发送配置。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
responseStatenumber响应状态
transactionIdstring事务ID
versionMmsVersionType版本
messageIdstring消息ID

MmsNotificationInd8+

彩信通知索引。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
transactionIdstring事务ID
messageClassnumber消息类
messageSizenumber消息大小
expirynumber到期
contentLocationstring内容位置
versionMmsVersionType版本
fromMmsAddress来源
subjectstring主题
deliveryReportnumber状态报告
contentClassnumber内容类

MmsAcknowledgeInd8+

彩信确认索引。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
transactionIdstring事务ID
versionMmsVersionType版本
reportAllowedReportType允许报告

MmsRetrieveConf8+

彩信检索配置。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
transactionIdstring事务ID
messageIdstring消息ID
datenumber日期
contentTypestring内容类型
toArray<MmsAddress>发送至
versionMmsVersionType版本
fromMmsAddress来源
ccArray<MmsAddress>抄送
subjectstring主题
priorityMmsPriorityType优先级
deliveryReportnumber状态报告
readReportnumber阅读报告
retrieveStatusnumber检索状态
retrieveTextstring检索文本

MmsReadOrigInd8+

彩信读取原始索引。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
versionMmsVersionType版本
messageIdstring消息ID
toArray<MmsAddress>发送至
fromMmsAddress来源
datenumber日期
readStatusnumber阅读状态

MmsReadRecInd8+

彩信读取记录索引。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
versionMmsVersionType版本
messageIdstring消息ID
toArray<MmsAddress>发送至
fromMmsAddress来源
readStatusnumber阅读状态
datenumber日期

MmsAttachment8+

彩信附件。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
contentIdstring内容ID
contentLocationstring内容位置
contentDispositionDispositionType内容处理
contentTransferEncodingstring内容传输编码
contentTypestring内容类型
isSmilboolean同步多媒体集成语言
pathstring路径
inBuffArray<number>缓冲区中
fileNamestring文件名
charsetMmsCharSets字符集

MmsAddress8+

彩信地址。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
addressstring地址
charsetMmsCharSets字符集

MessageType8+

消息类型。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称说明
TYPE_MMS_SEND_REQ128彩信发送请求类型
TYPE_MMS_SEND_CONF129彩信发送配置类型
TYPE_MMS_NOTIFICATION_IND130彩信通知索引类型
TYPE_MMS_RESP_IND131彩信回复索引类型
TYPE_MMS_RETRIEVE_CONF132彩信检索配置类型
TYPE_MMS_ACKNOWLEDGE_IND133彩信确认索引类型
TYPE_MMS_DELIVERY_IND134彩信传送索引类型
TYPE_MMS_READ_REC_IND135彩信读取接收索引类型
TYPE_MMS_READ_ORIG_IND136彩信读取原始索引类型

MmsPriorityType8+

彩信优先级类型。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称说明
MMS_LOW128彩信优先级低
MMS_NORMAL129彩信优先级正常
MMS_HIGH130彩信优先级高

MmsVersionType8+

彩信版本类型。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称说明
MMS_VERSION_1_00x10彩信版本1_0
MMS_VERSION_1_10x11彩信版本1_1
MMS_VERSION_1_20x12彩信版本1_2
MMS_VERSION_1_30x13彩信版本1_3

MmsCharSets8+

彩信字符集。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称说明
BIG50X07EABIG5格式
ISO_10646_UCS_20X03E8ISO_10646_UCS_2格式
ISO_8859_10X04ISO_8859_1格式
ISO_8859_20X05ISO_8859_2格式
ISO_8859_30X06ISO_8859_3格式
ISO_8859_40X07ISO_8859_4格式
ISO_8859_50X08ISO_8859_5格式
ISO_8859_60X09ISO_8859_6格式
ISO_8859_70X0AISO_8859_7格式
ISO_8859_80X0BISO_8859_8格式
ISO_8859_90X0CISO_8859_9格式
SHIFT_JIS0X11SHIFT_JIS格式
US_ASCII0X03US_ASCII格式
UTF_80X6AUTF_8格式

DispositionType8+

处理类型。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称说明
FROM_DATA0数据来源
ATTACHMENT1附件
INLINE2内联

ReportType8+

报告类型。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称说明
MMS_YES128YES
MMS_NO129NO

CBConfigOptions7+

小区广播配置选项。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
slotIdnumber卡槽ID
enableboolean可行
startMessageIdnumber消息起始ID
endMessageIdnumber消息结束ID
ranTypeRanType设备网络制式

SimMessageStatus7+

SIM卡消息状态。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称说明
SIM_MESSAGE_STATUS_FREE0SIM卡上的状态可用空间
SIM_MESSAGE_STATUS_READ1消息已读状态
SIM_MESSAGE_STATUS_UNREAD3消息未读状态
SIM_MESSAGE_STATUS_SENT5存储发送消息(仅适用于SMS)
SIM_MESSAGE_STATUS_UNSENT7储未发送消息(仅适用于SMS)

RanType7+

设备网络制式。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称说明
TYPE_GSM1GSM
TYPE_CDMA2CMDA

SmsEncodingScheme8+

短信编码方案。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称说明
SMS_ENCODING_UNKNOWN0未知短信编码
SMS_ENCODING_7BIT17位短信编码
SMS_ENCODING_8BIT28位短信编码
SMS_ENCODING_16BIT316位短信编码

SimMessageOptions7+

SIM卡消息选项。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
slotIdnumber卡槽ID
smscstring短消息业务中心
pdustring协议数据单元
statusSimMessageStatus状态

UpdateSimMessageOptions7+

更新SIM卡消息选项。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
slotIdnumber卡槽ID
msgIndexnumber消息索引
newStatusSimMessageStatus新状态
pdustring协议数据单元
smscstring短消息业务中心

SimShortMessage7+

SIM卡短消息。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
shortMessageShortMessage短消息
simMessageStatusSimMessageStatusSIM卡消息状态
indexOnSimnumberSIM卡索引

MmsDeliveryInd8+

彩信发送标识。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
messageIdstring消息ID
datenumber日期
toArray<MmsAddress>发送至
statusnumber状态
versionMmsVersionType版本

MmsRespInd8+

彩信回复标志。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
transactionIdstring事件ID
statusnumber状态
versionMmsVersionType版本
reportAllowedReportType允许报告

SmsSegmentsInfo8+

短信段信息。

系统接口: 此接口为系统接口。

系统能力:SystemCapability.Telephony.SmsMms

名称类型必填说明
splitCountnumber拆分计数
encodeCountnumber编码计数
encodeCountRemainingnumber剩余编码计数
schemeSmsEncodingScheme短信编码方案

你可能感兴趣的鸿蒙文章

harmony 鸿蒙接口

harmony 鸿蒙系统公共事件定义(待停用)

harmony 鸿蒙系统公共事件定义

harmony 鸿蒙开发说明

harmony 鸿蒙企业设备管理概述(仅对系统应用开放)

harmony 鸿蒙BundleStatusCallback

harmony 鸿蒙@ohos.bundle.innerBundleManager (innerBundleManager模块)

harmony 鸿蒙@ohos.distributedBundle (分布式包管理)

harmony 鸿蒙@ohos.bundle (Bundle模块)

harmony 鸿蒙@ohos.enterprise.EnterpriseAdminExtensionAbility (企业设备管理扩展能力)

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/e0a26d510ee34f8d879feff24093762b