HarmonyOS API:@ohos.rpc (RPC通信)
版本:v3.1 Beta
@ohos.rpc (RPC通信)版本:v3.1 Beta
更新时间: 2023-02-17 09:40
本模块提供进程间通信能力,包括设备内的进程间通信(IPC)和设备间的进程间通信(RPC),前者基于Binder驱动,后者基于软总线驱动。
说明
本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块从API version 9开始支持异常返回功能。
导入模块
import rpc from '@ohos.rpc';
ErrorCode9+
从API version 9起,IPC支持异常返回功能。错误码对应数值及含义如下。
系统能力:SystemCapability.Communication.IPC.Core
名称 | 值 | 说明 |
CHECK_PARAM_ERROR | 401 | 检查参数失败。 |
OS_MMAP_ERROR | 1900001 | 执行系统调用mmap失败。 |
OS_IOCTL_ERROR | 1900002 | 在共享内存文件描述符上执行系统调用ioctl失败。 |
WRITE_TO_ASHMEM_ERROR | 1900003 | 向共享内存写数据失败。 |
READ_FROM_ASHMEM_ERROR | 1900004 | 从共享内存读数据失败。 |
ONLY_PROXY_OBJECT_PERMITTED_ERROR | 1900005 | 只有proxy对象允许该操作。 |
ONLY_REMOTE_OBJECT_PERMITTED_ERROR | 1900006 | 只有remote对象允许该操作。 |
COMMUNICATION_ERROR | 1900007 | 和远端对象进行进程间通信失败。 |
PROXY_OR_REMOTE_OBJECT_INVALID_ERROR | 1900008 | 非法的代理对象或者远端对象。 |
WRITE_DATA_TO_MESSAGE_SEQUENCE_ERROR | 1900009 | 向MessageSequence写数据失败。 |
READ_DATA_FROM_MESSAGE_SEQUENCE_ERROR | 1900010 | 读取MessageSequence数据失败。 |
PARCEL_MEMORY_ALLOC_ERROR | 1900011 | 序列化过程中内存分配失败。 |
CALL_JS_METHOD_ERROR | 1900012 | 执行JS回调方法失败。 |
OS_DUP_ERROR | 1900013 | 执行系统调用dup失败。 |
MessageSequence9+
在RPC过程中,发送方可以使用MessageSequence提供的写方法,将待发送的数据以特定格式写入该对象。接收方可以使用MessageSequence提供的读方法从该对象中读取特定格式的数据。数据格式包括:基础类型及数组、IPC对象、接口描述符和自定义序列化对象。
create
create(): MessageSequence
静态方法,创建MessageSequence对象。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
MessageSequence | 返回创建的MessageSequence对象。 |
示例:
let data = rpc.MessageSequence.create();
console.log("RpcClient: data is " + data);
reclaim
reclaim(): void
释放不再使用的MessageSequence对象。
系统能力:SystemCapability.Communication.IPC.Core
示例:
let reply = rpc.MessageSequence.create();
reply.reclaim();
writeRemoteObject
writeRemoteObject(object: IRemoteObject): void
序列化远程对象并将其写入MessageSequence对象。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
object | 是 | 要序列化并写入MessageSequence的远程对象。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900008 | proxy or remote object is invalid |
1900009 | write data to message sequence failed |
示例:
class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) {
super(descriptor);
}
}
let data = rpc.MessageSequence.create();
let testRemoteObject = new TestRemoteObject("testObject");
try {
data.writeRemoteObject(testRemoteObject);
} catch(error) {
console.info("Rpc write remote object fail, errorCode " + error.code);
console.info("Rpc write remote object fail, errorMessage " + error.message);
}
readRemoteObject
readRemoteObject(): IRemoteObject
从MessageSequence读取远程对象。此方法用于反序列化MessageSequence对象以生成IRemoteObject。远程对象按写入MessageSequence的顺序读取。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
读取到的远程对象。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900008 | proxy or remote object is invalid |
1900010 | read data from message sequence failed |
示例:
class TestRemoteObject extends rpc.RemoteObject {
constructor(descriptor) {
super(descriptor);
}
}
let data = rpc.MessageSequence.create();
let testRemoteObject = new TestRemoteObject("testObject");
try {
data.writeRemoteObject(testRemoteObject);
let proxy = data.readRemoteObject();
} catch(error) {
console.info("Rpc write remote object fail, errorCode " + error.code);
console.info("Rpc write remote object fail, errorMessage " + error.message);
}
writeInterfaceToken
writeInterfaceToken(token: string): void
将接口描述符写入MessageSequence对象,远端对象可使用该信息校验本次通信。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
token | string | 是 | 字符串类型描述符。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeInterfaceToken("aaa");
} catch(error) {
console.info("rpc write interface fail, errorCode " + error.code);
console.info("rpc write interface fail, errorMessage " + error.message);
}
readInterfaceToken
readInterfaceToken(): string
从MessageSequence中读取接口描述符,接口描述符按写入MessageSequence的顺序读取,本地对象可使用该信息检验本次通信。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
string | 返回读取到的接口描述符。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
class Stub extends rpc.RemoteObject {
onRemoteRequest(code, data, reply, option) {
try {
let interfaceToken = data.readInterfaceToken();
console.log("RpcServer: interfaceToken is " + interfaceToken);
} catch(error) {
console.info("RpcServer: read interfaceToken failed, errorCode " + error.code);
console.info("RpcServer: read interfaceToken failed, errorMessage " + error.message);
}
return true;
}
}
getSize
getSize(): number
获取当前MessageSequence的数据大小。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number | 获取的MessageSequence的数据大小。以字节为单位。 |
示例:
let data = rpc.MessageSequence.create();
let size = data.getSize();
console.log("RpcClient: size is " + size);
getCapacity
getCapacity(): number
获取当前MessageSequence的容量。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number | 获取的MessageSequence的容量大小。以字节为单位。 |
示例:
let data = rpc.MessageSequence.create();
let result = data.getCapacity();
console.log("RpcClient: capacity is " + result);
setSize
setSize(size: number): void
设置MessageSequence实例中包含的数据大小。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
size | number | 是 | MessageSequence实例的数据大小。以字节为单位。 |
示例:
let data = rpc.MessageSequence.create();
try {
data.setSize(16);
console.log("RpcClient: setSize is " + data.getSize());
} catch(error) {
console.info("rpc set size of MessageSequence fail, errorCode " + error.code);
console.info("rpc set size of MessageSequence fail, errorMessage " + error.message);
}
setCapacity
setCapacity(size: number): void
设置MessageSequence实例的存储容量。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
size | number | 是 | MessageSequence实例的存储容量。以字节为单位。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900011 | parcel memory alloc failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.setCapacity(100);
console.log("RpcClient: setCapacity is " + data.getCapacity());
} catch(error) {
console.info("rpc memory alloc fail, errorCode " + error.code);
console.info("rpc memory alloc fail, errorMessage " + error.message);
}
getWritableBytes
getWritableBytes(): number
获取MessageSequence的可写字节空间。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number | 获取到的MessageSequence的可写字节空间。以字节为单位。 |
示例:
class Stub extends rpc.RemoteObject {
onRemoteRequest(code, data, reply, option) {
let getWritableBytes = data.getWritableBytes();
console.log("RpcServer: getWritableBytes is " + getWritableBytes);
return true;
}
}
getReadableBytes
getReadableBytes(): number
获取MessageSequence的可读字节空间。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number | 获取到的MessageSequence的可读字节空间。以字节为单位。 |
示例:
class Stub extends rpc.RemoteObject {
onRemoteRequest(code, data, reply, option) {
let result = data.getReadableBytes();
console.log("RpcServer: getReadableBytes is " + result);
return true;
}
}
getReadPosition
getReadPosition(): number
获取MessageSequence的读位置。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number | 返回MessageSequence实例中的当前读取位置。 |
示例:
let data = rpc.MessageSequence.create();
let readPos = data.getReadPosition();
console.log("RpcClient: readPos is " + readPos);
getWritePosition
getWritePosition(): number
获取MessageSequence的写位置。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number | 返回MessageSequence实例中的当前写入位置。 |
示例:
let data = rpc.MessageSequence.create();
data.writeInt(10);
let bwPos = data.getWritePosition();
console.log("RpcClient: bwPos is " + bwPos);
rewindRead
rewindRead(pos: number): void
重新偏移读取位置到指定的位置。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
pos | number | 是 | 开始读取数据的目标位置。 |
示例:
let data = rpc.MessageSequence.create();
data.writeInt(12);
data.writeString("sequence");
let number = data.readInt();
console.log("RpcClient: number is " + number);
try {
data.rewindRead(0);
} catch(error) {
console.info("rpc rewind read data fail, errorCode " + error.code);
console.info("rpc rewind read data fail, errorMessage " + error.message);
}
let number2 = data.readInt();
console.log("RpcClient: rewindRead is " + number2);
rewindWrite
rewindWrite(pos: number): void
重新偏移写位置到指定的位置。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
pos | number | 是 | 开始写入数据的目标位置。 |
示例:
let data = rpc.MessageSequence.create();
data.writeInt(4);
try {
data.rewindWrite(0);
} catch(error) {
console.info("rpc rewind read data fail, errorCode " + error.code);
console.info("rpc rewind read data fail, errorMessage " + error.message);
}
data.writeInt(5);
let number = data.readInt();
console.log("RpcClient: rewindWrite is: " + number);
writeByte
writeByte(val: number): void
将字节值写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
val | number | 是 | 要写入的字节值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeByte(2);
} catch(error) {
console.info("rpc write byte fail, errorCode " + error.code);
console.info("rpc write byte fail, errorMessage" + error.message);
}
readByte
readByte(): number
从MessageSequence实例读取字节值。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number | 返回字节值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeByte(2);
} catch(error) {
console.info("rpc write byte fail, errorCode " + error.code);
console.info("rpc write byte fail, errorMessage" + error.message);
}
try {
let ret = data.readByte();
console.log("RpcClient: readByte is: " + ret);
} catch(error) {
console.info("rpc write byte fail, errorCode " + error.code);
console.info("rpc write byte fail, errorMessage" + error.message);
}
writeShort
writeShort(val: number): void
将短整数值写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
val | number | 是 | 要写入的短整数值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeShort(8);
} catch(error) {
console.info("rpc write short fail, errorCode " + error.code);
console.info("rpc write short fail, errorMessage" + error.message);
}
readShort
readShort(): number
从MessageSequence实例读取短整数值。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number | 返回短整数值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeShort(8);
} catch(error) {
console.info("rpc write short fail, errorCode " + error.code);
console.info("rpc write short fail, errorMessage" + error.message);
}
try {
let ret = data.readShort();
console.log("RpcClient: readByte is: " + ret);
} catch(error) {
console.info("rpc read short fail, errorCode " + error.code);
console.info("rpc read short fail, errorMessage" + error.message);
}
writeInt
writeInt(val: number): void
将整数值写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
val | number | 是 | 要写入的整数值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeInt(10);
} catch(error) {
console.info("rpc write int fail, errorCode " + error.code);
console.info("rpc write int fail, errorMessage" + error.message);
}
readInt
readInt(): number
从MessageSequence实例读取整数值。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number | 返回整数值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeInt(10);
} catch(error) {
console.info("rpc write int fail, errorCode " + error.code);
console.info("rpc write int fail, errorMessage" + error.message);
}
try {
let ret = data.readInt();
console.log("RpcClient: readInt is " + ret);
} catch(error) {
console.info("rpc read int fail, errorCode " + error.code);
console.info("rpc read int fail, errorMessage" + error.message);
}
writeLong
writeLong(val: number): void
将长整数值写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
val | number | 是 | 要写入的长整数值 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeLong(10000);
} catch(error) {
console.info("rpc write long fail, errorCode " + error.code);
console.info("rpc write long fail, errorMessage" + error.message);
}
readLong
readLong(): number
从MessageSequence实例中读取长整数值。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number | 返回长整数值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeLong(10000);
} catch(error) {
console.info("rpc write long fail, errorCode " + error.code);
console.info("rpc write long fail, errorMessage" + error.message);
}
try {
let ret = data.readLong();
console.log("RpcClient: readLong is " + ret);
} catch(error) {
console.info("rpc read long fail, errorCode " + error.code);
console.info("rpc read long fail, errorMessage" + error.message);
}
writeFloat
writeFloat(val: number): void
将浮点值写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
val | number | 是 | 要写入的浮点值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeFloat(1.2);
} catch(error) {
console.info("rpc write float fail, errorCode " + error.code);
console.info("rpc write float fail, errorMessage" + error.message);
}
readFloat
readFloat(): number
从MessageSequence实例中读取浮点值。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number | 返回浮点值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeFloat(1.2);
} catch(error) {
console.info("rpc write float fail, errorCode " + error.code);
console.info("rpc write float fail, errorMessage" + error.message);
}
try {
let ret = data.readFloat();
console.log("RpcClient: readFloat is " + ret);
} catch(error) {
console.info("rpc read float fail, errorCode " + error.code);
console.info("rpc read float fail, errorMessage" + error.message);
}
writeDouble
writeDouble(val: number): void
将双精度浮点值写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
val | number | 是 | 要写入的双精度浮点值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeDouble(10.2);
} catch(error) {
console.info("rpc read float fail, errorCode " + error.code);
console.info("rpc read float fail, errorMessage" + error.message);
}
readDouble
readDouble(): number
从MessageSequence实例读取双精度浮点值。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number | 返回双精度浮点值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeDouble(10.2);
} catch(error) {
console.info("rpc write double fail, errorCode " + error.code);
console.info("rpc write double fail, errorMessage" + error.message);
}
try {
let ret = data.readDouble();
console.log("RpcClient: readDouble is " + ret);
} catch(error) {
console.info("rpc read double fail, errorCode " + error.code);
console.info("rpc read double fail, errorMessage" + error.message);
}
writeBoolean
writeBoolean(val: boolean): void
将布尔值写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
val | boolean | 是 | 要写入的布尔值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeBoolean(false);
} catch(error) {
console.info("rpc write boolean fail, errorCode " + error.code);
console.info("rpc write boolean fail, errorMessage" + error.message);
}
readBoolean
readBoolean(): boolean
从MessageSequence实例读取布尔值。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
boolean | 返回读取到的布尔值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeBoolean(false);
} catch(error) {
console.info("rpc write boolean fail, errorCode " + error.code);
console.info("rpc write boolean fail, errorMessage" + error.message);
}
try {
let ret = data.readBoolean();
console.log("RpcClient: readBoolean is " + ret);
} catch(error) {
console.info("rpc read boolean fail, errorCode " + error.code);
console.info("rpc read boolean fail, errorMessage" + error.message);
}
writeChar
writeChar(val: number): void
将单个字符值写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
val | number | 是 | 要写入的单个字符值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeChar(97);
} catch(error) {
console.info("rpc write char fail, errorCode " + error.code);
console.info("rpc write char fail, errorMessage" + error.message);
}
readChar
readChar(): number
从MessageSequence实例中读取单个字符值。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number | 返回单个字符值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeChar(97);
} catch(error) {
console.info("rpc write char fail, errorCode " + error.code);
console.info("rpc write char fail, errorMessage" + error.message);
}
try {
let ret = data.readChar();
console.log("RpcClient: readChar is " + ret);
} catch(error) {
console.info("rpc read char fail, errorCode " + error.code);
console.info("rpc read char fail, errorMessage" + error.message);
}
writeString
writeString(val: string): void
将字符串值写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
val | string | 是 | 要写入的字符串值,其长度应小于40960字节。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeString('abc');
} catch(error) {
console.info("rpc write string fail, errorCode " + error.code);
console.info("rpc write string fail, errorMessage" + error.message);
}
readString
readString(): string
从MessageSequence实例读取字符串值。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
string | 返回字符串值。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeString('abc');
} catch(error) {
console.info("rpc write string fail, errorCode " + error.code);
console.info("rpc write string fail, errorMessage" + error.message);
}
try {
let ret = data.readString();
console.log("RpcClient: readString is " + ret);
} catch(error) {
console.info("rpc read string fail, errorCode " + error.code);
console.info("rpc read string fail, errorMessage" + error.message);
}
writeParcelable
writeParcelable(val: Parcelable): void
将自定义序列化对象写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
val | Parcelable | 是 | 要写入的可序列对象。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
class MySequenceable {
num: number;
str: string;
constructor(num, str) {
this.num = num;
this.str = str;
}
marshalling(messageSequence) {
messageSequence.writeInt(this.num);
messageSequence.writeString(this.str);
return true;
}
unmarshalling(messageSequence) {
this.num = messageSequence.readInt();
this.str = messageSequence.readString();
return true;
}
}
let parcelable = new MySequenceable(1, "aaa");
let data = rpc.MessageSequence.create();
try {
data.writeParcelable(parcelable);
} catch(error) {
console.info("rpc write parcelable fail, errorCode " + error.code);
console.info("rpc write parcelable fail, errorMessage" + error.message);
}
readParcelable
readParcelable(dataIn: Parcelable): void
从MessageSequence实例中读取成员变量到指定的对象(dataIn)。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
dataIn | Parcelable | 是 | 需要从MessageSequence读取成员变量的对象。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
1900012 | call js callback function failed |
示例:
class MySequenceable {
num: number;
str: string;
constructor(num, str) {
this.num = num;
this.str = str;
}
marshalling(messageSequence) {
messageSequence.writeInt(this.num);
messageSequence.writeString(this.str);
return true;
}
unmarshalling(messageSequence) {
this.num = messageSequence.readInt();
this.str = messageSequence.readString();
return true;
}
}
let parcelable = new MySequenceable(1, "aaa");
let data = rpc.MessageSequence.create();
data.writeParcelable(parcelable);
let ret = new MySequenceable(0, "");
try {
data.readParcelable(ret);
}catch(error) {
console.info("rpc read parcelable fail, errorCode " + error.code);
console.info("rpc read parcelable fail, errorMessage" + error.message);
}
writeByteArray
writeByteArray(byteArray: number[]): void
将字节数组写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
byteArray | number[] | 是 | 要写入的字节数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
let ByteArrayVar = [1, 2, 3, 4, 5];
try {
data.writeByteArray(ByteArrayVar);
} catch(error) {
console.info("rpc write byteArray fail, errorCode " + error.code);
console.info("rpc write byteArray fail, errorMessage" + error.message);
}
readByteArray
readByteArray(dataIn: number[]): void
从MessageSequence实例读取字节数组。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
dataIn | number[] | 是 | 要读取的字节数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
let ByteArrayVar = [1, 2, 3, 4, 5];
try {
data.writeByteArray(ByteArrayVar);
} catch(error) {
console.info("rpc write byteArray fail, errorCode " + error.code);
console.info("rpc write byteArray fail, errorMessage" + error.message);
}
try {
let array = new Array(5);
data.readByteArray(array);
} catch(error) {
console.info("rpc write byteArray fail, errorCode " + error.code);
console.info("rpc write byteArray fail, errorMessage" + error.message);
}
readByteArray
readByteArray(): number[]
从MessageSequence实例中读取字节数组。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number[] | 返回字节数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
let byteArrayVar = [1, 2, 3, 4, 5];
try {
data.writeByteArray(byteArrayVar);
} catch(error) {
console.info("rpc write byteArray fail, errorCode " + error.code);
console.info("rpc write byteArray fail, errorMessage" + error.message);
}
try {
let array = data.readByteArray();
console.log("RpcClient: readByteArray is " + array);
} catch(error) {
console.info("rpc read byteArray fail, errorCode " + error.code);
console.info("rpc read byteArray fail, errorMessage" + error.message);
}
writeShortArray
writeShortArray(shortArray: number[]): void
将短整数数组写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
shortArray | number[] | 是 | 要写入的短整数数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeShortArray([11, 12, 13]);
} catch(error) {
console.info("rpc read byteArray fail, errorCode " + error.code);
console.info("rpc read byteArray fail, errorMessage" + error.message);
}
readShortArray
readShortArray(dataIn: number[]): void
从MessageSequence实例中读取短整数数组。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
dataIn | number[] | 是 | 要读取的短整数数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeShortArray([11, 12, 13]);
} catch(error) {
console.info("rpc write shortArray fail, errorCode " + error.code);
console.info("rpc write shortArray fail, errorMessage" + error.message);
}
try {
let array = new Array(3);
data.readShortArray(array);
} catch(error) {
console.info("rpc read shortArray fail, errorCode " + error.code);
console.info("rpc read shortArray fail, errorMessage" + error.message);
}
readShortArray
readShortArray(): number[]
从MessageSequence实例中读取短整数数组。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number[] | 返回短整数数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeShortArray([11, 12, 13]);
} catch(error) {
console.info("rpc write shortArray fail, errorCode " + error.code);
console.info("rpc write shortArray fail, errorMessage" + error.message);
}
try {
let array = data.readShortArray();
console.log("RpcClient: readShortArray is " + array);
} catch(error) {
console.info("rpc read shortArray fail, errorCode " + error.code);
console.info("rpc read shortArray fail, errorMessage" + error.message);
}
writeIntArray
writeIntArray(intArray: number[]): void
将整数数组写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
intArray | number[] | 是 | 要写入的整数数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeIntArray([100, 111, 112]);
} catch(error) {
console.info("rpc write intArray fail, errorCode " + error.code);
console.info("rpc write intArray fail, errorMessage" + error.message);
}
readIntArray
readIntArray(dataIn: number[]): void
从MessageSequence实例中读取整数数组。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
dataIn | number[] | 是 | 要读取的整数数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeIntArray([100, 111, 112]);
} catch(error) {
console.info("rpc write intArray fail, errorCode " + error.code);
console.info("rpc write intArray fail, errorMessage" + error.message);
}
let array = new Array(3);
try {
data.readIntArray(array);
} catch(error) {
console.info("rpc read intArray fail, errorCode " + error.code);
console.info("rpc read intArray fail, errorMessage" + error.message);
}
readIntArray
readIntArray(): number[]
从MessageSequence实例中读取整数数组。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number[] | 返回整数数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeIntArray([100, 111, 112]);
} catch(error) {
console.info("rpc write intArray fail, errorCode " + error.code);
console.info("rpc write intArray fail, errorMessage" + error.message);
}
try {
let array = data.readIntArray();
console.log("RpcClient: readIntArray is " + array);
} catch(error) {
console.info("rpc read intArray fail, errorCode " + error.code);
console.info("rpc read intArray fail, errorMessage" + error.message);
}
writeLongArray
writeLongArray(longArray: number[]): void
将长整数数组写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
longArray | number[] | 是 | 要写入的长整数数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeLongArray([1111, 1112, 1113]);
}catch(error){
console.info("rpc write longArray fail, errorCode " + error.code);
console.info("rpc write longArray fail, errorMessage" + error.message);
}
readLongArray
readLongArray(dataIn: number[]): void
从MessageSequence实例读取长整数数组。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
dataIn | number[] | 是 | 要读取的长整数数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeLongArray([1111, 1112, 1113]);
} catch(error) {
console.info("rpc write longArray fail, errorCode " + error.code);
console.info("rpc write longArray fail, errorMessage" + error.message);
}
let array = new Array(3);
try {
data.readLongArray(array);
} catch(error) {
console.info("rpc read longArray fail, errorCode " + error.code);
console.info("rpc read longArray fail, errorMessage" + error.message);
}
readLongArray
readLongArray(): number[]
从MessageSequence实例中读取长整数数组。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number[] | 返回长整数数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeLongArray([1111, 1112, 1113]);
} catch(error) {
console.info("rpc write longArray fail, errorCode " + error.code);
console.info("rpc write longArray fail, errorMessage" + error.message);
}
try {
let array = data.readLongArray();
console.log("RpcClient: readLongArray is " + array);
} catch(error) {
console.info("rpc read longArray fail, errorCode " + error.code);
console.info("rpc read longArray fail, errorMessage" + error.message);
}
writeFloatArray
writeFloatArray(floatArray: number[]): void
将浮点数组写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
floatArray | number[] | 是 | 要写入的浮点数组。由于系统内部对float类型的数据是按照double处理的,使用时对于数组所占的总字节数应按照double类型来计算。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeFloatArray([1.2, 1.3, 1.4]);
} catch(error) {
console.info("rpc write floatArray fail, errorCode " + error.code);
console.info("rpc write floatArray fail, errorMessage" + error.message);
}
readFloatArray
readFloatArray(dataIn: number[]): void
从MessageSequence实例中读取浮点数组。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
dataIn | number[] | 是 | 要读取的浮点数组。由于系统内部对float类型的数据是按照double处理的,使用时对于数组所占的总字节数应按照double类型来计算。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeFloatArray([1.2, 1.3, 1.4]);
}catch(error){
console.info("rpc write floatArray fail, errorCode " + error.code);
console.info("rpc write floatArray fail, errorMessage" + error.message);
}
let array = new Array(3);
try {
data.readFloatArray(array);
} catch(error) {
console.info("rpc read floatArray fail, errorCode " + error.code);
console.info("rpc read floatArray fail, errorMessage" + error.message);
}
readFloatArray
readFloatArray(): number[]
从MessageSequence实例中读取浮点数组。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number[] | 返回浮点数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeFloatArray([1.2, 1.3, 1.4]);
} catch(error) {
console.info("rpc write floatArray fail, errorCode " + error.code);
console.info("rpc write floatArray fail, errorMessage" + error.message);
}
try {
let array = data.readFloatArray();
console.log("RpcClient: readFloatArray is " + array);
} catch(error) {
console.info("rpc read floatArray fail, errorCode " + error.code);
console.info("rpc read floatArray fail, errorMessage" + error.message);
}
writeDoubleArray
writeDoubleArray(doubleArray: number[]): void
将双精度浮点数组写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
doubleArray | number[] | 是 | 要写入的双精度浮点数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeDoubleArray([11.1, 12.2, 13.3]);
} catch(error) {
console.info("rpc write doubleArray fail, errorCode " + error.code);
console.info("rpc write doubleArray fail, errorMessage" + error.message);
}
readDoubleArray
readDoubleArray(dataIn: number[]): void
从MessageSequence实例中读取双精度浮点数组。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
dataIn | number[] | 是 | 要读取的双精度浮点数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeDoubleArray([11.1, 12.2, 13.3]);
} catch(error) {
console.info("rpc write doubleArray fail, errorCode " + error.code);
console.info("rpc write doubleArray fail, errorMessage" + error.message);
}
let array = new Array(3);
try {
data.readDoubleArray(array);
} catch(error) {
console.info("rpc read doubleArray fail, errorCode " + error.code);
console.info("rpc read doubleArray fail, errorMessage" + error.message);
}
readDoubleArray
readDoubleArray(): number[]
从MessageSequence实例读取双精度浮点数组。
系统能力:SystemCapability.Communication.IPC.Core
返回值:
类型 | 说明 |
number[] | 返回双精度浮点数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900010 | read data from message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeDoubleArray([11.1, 12.2, 13.3]);
} catch(error) {
console.info("rpc write doubleArray fail, errorCode " + error.code);
console.info("rpc write doubleArray fail, errorMessage" + error.message);
}
try {
let array = data.readDoubleArray();
console.log("RpcClient: readDoubleArray is " + array);
} catch(error) {
console.info("rpc read doubleArray fail, errorCode " + error.code);
console.info("rpc read doubleArray fail, errorMessage" + error.message);
}
writeBooleanArray
writeBooleanArray(booleanArray: boolean[]): void
将布尔数组写入MessageSequence实例。
系统能力:SystemCapability.Communication.IPC.Core
参数:
参数名 | 类型 | 必填 | 说明 |
booleanArray | boolean[] | 是 | 要写入的布尔数组。 |
错误码:
以下错误码的详细介绍请参见ohos.rpc错误码
错误码ID | 错误信息 |
1900009 | write data to message sequence failed |
示例:
let data = rpc.MessageSequence.create();
try {
data.writeBooleanArray([false, true, false]);
} catch(error) {
console.info("rpc write booleanArray fail, errorCode " + error.code);
console.info("rpc write booleanArray fail, errorMessage" + error.message);
}