HarmonyOS API:@ohos.rpc (RPC通信)

joytrian
发布于 2023-4-7 15:57
浏览
0收藏

版本: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

​IRemoteObject​

要序列化并写入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

返回值:

类型

说明

​IRemoteObject​

读取到的远程对象。

错误码:

以下错误码的详细介绍请参见​​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);
}


文章转载自:​​https://developer.harmonyos.com/cn/docs/documentation/doc-references-V3/js-apis-rpc-0000001427902704-V3?catalogVersion=V3#ZH-CN_TOPIC_0000001427902704__导入模块​

已于2023-4-7 15:57:13修改
收藏
回复
举报
回复
    相关推荐