目录

Data

Class Info

public class Data implements Parcelable

设备之间进行数据传输的数据类,数据以一个特定的类型(本地文件、传输流、字节消息)发送,接收方也需要以该类型接收。比如,接收stream数据必须通过asStream()返回的InputStream读取。

Nested Class Summary

Qualifier and Type

Class Name and Description

static class

Data.File

存储在本地的文件。

static class

Data.Stream

传输流。

@interface

Data.Type

数据类型。

Public Method Summary

Qualifier and Type

Method Name and Description

byte[]

asBytes()

获取BYTES类型字节数组载荷。

Data.File

asFile()

获取FILE类型文件载荷。

Data.Stream

asStream()

获取STREAM类型流载荷。

int

describeContents()

返回当前Parcelable对象描述。

static Data

fromBytes(byte[] bytes)

从bytes数组创建一个BYTES类型数据实例。

static Data

fromFile(File javaFile)

从javaFile创建一个FILE类型数据实例。

static Data

fromFile(ParcelFileDescriptor pfd)

从pfd创建一个FILE类型数据实例。

static Data

fromStream(InputStream inputStream)

从inputStream创建一个STREAM类型数据实例。

static Data

fromStream(ParcelFileDescriptor pfd)

从pfd创建一个STREAM类型数据实例。

long

getId()

获取数据的唯一标识。

int

getType()

获取数据类型。

void

writeToParcel(Parcel dest, int flags)

序列化打包,把值写入dest容器。

Public Methods

[h2]asBytes

Method

public byte[] asBytes()

获取BYTES类型字节数组载荷。

Returns

Type

Description

byte[]

byte数组。

[h2]asFile

Method

public Data.File asFile()

获取FILE类型文件载荷。

Returns

Type

Description

Data.File

Data.File实例。

[h2]asStream

Method

public Data.Stream asStream()

获取STREAM类型流载荷。

Returns

Type

Description

Data.Stream

Data.Stream实例。

[h2]describeContents

Method

public int describeContents()

返回当前Parcelable对象描述。

Returns

Type

Description

int

返回当前Parcelable对象描述。返回值如下:

  • 0:普通Parcelable对象。
  • 1:包含文件描述符的Parcelable对象。

[h2]fromBytes(byte[] bytes)

Method

public static Data fromBytes(byte[] bytes)

从bytes数组创建一个BYTES类型数据实例。

Parameters

Name

Description

bytes

BYTES类型数组。

Returns

Type

Description

Data

Data实例。

Throws

Name

Description

NullPointerException

空指针异常,并附带信息“Bytes is null, failed to create Data.BYTES”。

[h2]fromFile(File javaFile)

Method

public static Data fromFile(File javaFile) throws FileNotFoundException

从javaFile创建一个FILE类型数据实例。远端收到文件后会以dataId命名且没有文件扩展名,存储在“/Downloads/Nearby”目录下。 应用负责对这个文件重命名,并且添加合适的扩展名。如果有必要,在进行文件传输之前,可以先把文件的全名发送给远端(比如,可以使用BYTES进行文件名传输)。

注意:

应用需要授予读取此目录文件的必要权限。

Parameters

Name

Description

javaFile

FILE类型实例。

Returns

Type

Description

Data

Data实例。

throws

Type

Description

FileNotFoundException

文件未找到。

NullPointerException

空指针异常,并附带信息“Java file is null, failed to create Data.FILE”。

[h2]fromFile(ParcelFileDescriptor pfd)

Method

public static Data fromFile(ParcelFileDescriptor pfd)

从pfd创建一个FILE类型数据实例。例如,ParcelFileDescriptor通过调用openFileDescriptor(Uri, String)获取URI,返回值Data实例。

Parameters

Name

Description

pfd

ParcelFileDescriptor类型实例。

Returns

Type

Description

Data

Data实例。

Throws

Name

Description

NullPointerException

空指针异常,并附带信息“Parcel file descriptor is null, failed to create Data.FILE”。

[h2]fromStream(InputStream inputStream)

Method

public static Data fromStream(InputStream inputStream)

从inputStream创建一个STREAM类型数据实例。

Parameters

Name

Description

inputStream

InputStream实例。例如,通过FileInputStream(File file)方法创建文件输入流(InputStream是FileInputStream的父类)。

Returns

Type

Description

Data

Data实例。

Throws

Name

Description

NullPointerException

空指针异常,并附带信息“Input stream is null, failed to create Data.STREAM”。

[h2]fromStream(ParcelFileDescriptor pfd)

Method

public static Data fromStream(ParcelFileDescriptor pfd)

从pfd创建一个STREAM类型数据实例。

Parameters

Name

Description

pfd

pfd为ParcelFileDescriptor类型实例,一直从ParcelFileDescriptor读数据直到关闭。

Returns

Type

Description

Data

Data实例。

Throws

Name

Description

NullPointerException

空指针异常,并附带信息“Parcel file descriptor is null, failed to create Data.STREAM”。

[h2]getId

Method

public long getId()

获取数据的唯一标识。

Returns

Type

Description

long

数据的唯一标识。

[h2]getType

Method

public int getType()

获取数据类型,参见Data.Type。

Returns

Type

Description

int

数据类型值。

[h2]writeToParcel

Method

public void writeToParcel(Parcel dest, int flags)

序列化打包,把值写入dest容器。

Parameters

Name

Description

dest

对象被写入的Parcel。

flags

写入方式,取值如下:

  • 0。
  • PARCELABLE_WRITE_RETURN_VALUE(详情查看Parcelable接口类)。