@ohos.data.uniformTypeDescriptor (标准化数据定义与描述)

本模块对标准化数据类型进行了抽象定义与描述。

说明:

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

导入模块

import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';

UniformDataType

标准化数据类型的枚举定义。标准化数据类型之间存在归属关系,例如JPEG图片类型归属于IMAGE类型。

系统能力: SystemCapability.DistributedDataManager.UDMF.Core

名称 说明
ENTITY11+ 'general.entity' 所有表示物理存储类型的基类型,无归属类型。
OBJECT11+ 'general.object' 所有表示逻辑内容类型的基类型,无归属类型。
COMPOSITE_OBJECT11+ 'general.composite-object' 所有组合内容类型(例如PDF文件类型混合了文本和图片类数据)的基类型,归属类型为OBJECT。
TEXT 'general.text' 所有文本的基类型,归属类型为OBJECT。
PLAIN_TEXT 'general.plain-text' 未指定编码的文本类型,没有标识符,归属类型为TEXT。
HTML 'general.html' HTML文本类型,归属类型为TEXT。
HYPERLINK 'general.hyperlink' 超链接类型,归属类型为TEXT。
XML11+ 'general.xml' XML文本类型,归属类型为TEXT。
SOURCE_CODE11+ 'general.source-code' 所有源代码的基类型,归属类型为PLAIN_TEXT。
SCRIPT11+ 'general.script' 所有脚本语言源代码的基类型,归属类型为SOURCE_CODE。
SHELL_SCRIPT11+ 'general.shell-script' shell脚本类型,归属类型为SCRIPT。
CSH_SCRIPT11+ 'general.csh-script' C-shell脚本类型,归属类型为SHELL_SCRIPT。
PERL_SCRIPT11+ 'general.perl-script' Perl脚本类型,归属类型为SHELL_SCRIPT。
PHP_SCRIPT11+ 'general.php-script' PHP脚本类型,归属类型为SHELL_SCRIPT。
PYTHON_SCRIPT11+ 'general.python-script' Python脚本类型,归属类型为SHELL_SCRIPT。
RUBY_SCRIPT11+ 'general.ruby-script' Ruby脚本类型,归属类型为SHELL_SCRIPT。
TYPE_SCRIPT11+ 'general.type-script' TypeScript源代码类型,归属类型为SCRIPT。
JAVA_SCRIPT11+ 'general.java-script' JavaScript源代码类型,归属类型为SCRIPT。
C_HEADER11+ 'general.c-header' C头文件类型,归属类型为SOURCE_CODE。
C_SOURCE11+ 'general.c-source' C源代码类型,归属类型为SOURCE_CODE。
C_PLUS_PLUS_HEADER11+ 'general.c-plus-plus-header' C++头文件类型,归属类型为SOURCE_CODE。
C_PLUS_PLUS_SOURCE11+ 'general.c-plus-plus-source' C++源代码类型,归属类型为SOURCE_CODE。
JAVA_SOURCE11+ 'general.java-source' Java源代码类型,归属类型为SOURCE_CODE。
EBOOK11+ 'general.ebook' 所有电子书文件格式的基类型,归属类型为COMPOSITE_OBJECT。
EPUB11+ 'general.epub' 电子出版物(EPUB)文件格式类型,归属类型为EBOOK。
AZW11+ 'com.amazon.azw' AZW电子书文件格式类型,归属类型为EBOOK。
AZW311+ 'com.amazon.azw3' AZW3电子书文件格式类型,归属类型为EBOOK。
KFX11+ 'com.amazon.kfx' KFX电子书文件格式类型,归属类型为EBOOK。
MOBI11+ 'com.amazon.mobi' MOBI电子书文件格式类型,归属类型为EBOOK。
MEDIA11+ 'general.media' 所有媒体的基类型,归属类型为OBJECT。
IMAGE 'general.image' 所有图片的基类型,归属类型为MEDIA。
JPEG11+ 'general.jpeg' JPEG图片类型,归属类型为IMAGE。
PNG11+ 'general.png' PNG图片类型,归属类型为IMAGE。
RAW_IMAGE11+ 'general.raw-image' 所有原始图像格式的基类型,归属类型为IMAGE。
TIFF11+ 'general.tiff' TIFF图片类型,归属类型为IMAGE。
BMP11+ 'com.microsoft.bmp' WINDOWS位图图像类型,归属类型为IMAGE。
ICO11+ 'com.microsoft.ico' WINDOWS图标图像类型,归属类型为IMAGE。
PHOTOSHOP_IMAGE11+ 'com.adobe.photoshop-image' Adobe Photoshop图片类型,归属类型为IMAGE。
AI_IMAGE11+ 'com.adobe.illustrator.ai-image' Adobe Illustrator图片类型,归属类型为IMAGE。
WORD_DOC11+ 'com.microsoft.word.doc' Microsoft Word数据类型,归属类型为COMPOSITE_OBJECT。
EXCEL11+ 'com.microsoft.excel.xls' Microsoft Excel数据类型,归属类型为COMPOSITE_OBJECT。
PPT11+ 'com.microsoft.powerpoint.ppt' Microsoft PowerPoint演示文稿类型,归属类型为COMPOSITE_OBJECT。
PDF11+ 'com.adobe.pdf' PDF数据类型,归属类型为COMPOSITE_OBJECT。
POSTSCRIPT11+ 'com.adobe.postscript' PostScript数据类型,归属类型为COMPOSITE_OBJECT。
ENCAPSULATED_POSTSCRIPT11+ 'com.adobe.encapsulated-postscript' Encapsulated PostScript类型,归属类型为POSTSCRIPT。
VIDEO 'general.video' 所有视频的基类型,归属类型为MEDIA。
AVI11+ 'general.avi' AVI视频类型,归属类型为VIDEO。
MPEG11+ 'general.mpeg' MPGE-1或MPGE-2视频类型,归属类型为VIDEO。
MPEG411+ 'general.mpeg-4' MPGE-4视频类型,归属类型为VIDEO。
VIDEO_3GPP11+ 'general.3gpp' 3GPP视频类型,归属类型为VIDEO。
VIDEO_3GPP211+ 'general.3gpp2' 3GPP2视频类型,归属类型为VIDEO。
WINDOWS_MEDIA_WM11+ 'com.microsoft.windows-media-wm' WINDOWS WM视频类型,归属类型为VIDEO。
WINDOWS_MEDIA_WMV11+ 'com.microsoft.windows-media-wmv' WINDOWS WMV视频类型,归属类型为VIDEO。
WINDOWS_MEDIA_WMP11+ 'com.microsoft.windows-media-wmp' WINDOWS WMP视频类型,归属类型为VIDEO。
AUDIO 'general.audio' 所有音频的基类型,归属类型为MEDIA。
AAC11+ 'general.aac' AAC音频类型,归属类型为AUDIO。
AIFF11+ 'general.aiff' AIFF音频类型,归属类型为AUDIO。
ALAC11+ 'general.alac' ALAC音频类型,归属类型为AUDIO。
FLAC11+ 'general.flac' FLAC音频类型,归属类型为AUDIO。
MP311+ 'general.mp3' MP3音频类型,归属类型为AUDIO。
OGG11+ 'general.ogg' OGG音频类型,归属类型为AUDIO。
PCM11+ 'general.pcm' PCM音频类型,归属类型为AUDIO。
WINDOWS_MEDIA_WMA11+ 'com.microsoft.windows-media-wma' WINDOWS WMA音频类型,归属类型为AUDIO。
WAVEFORM_AUDIO11+ 'com.microsoft.waveform-audio' WINDOWS波形音频类型,归属类型为AUDIO。
WINDOWS_MEDIA_WMX11+ 'com.microsoft.windows-media-wmx' WINDOWS WMX音频类型,归属类型为AUDIO。
WINDOWS_MEDIA_WVX11+ 'com.microsoft.windows-media-wvx' WINDOWS WVX音频类型,归属类型为AUDIO。
WINDOWS_MEDIA_WAX11+ 'com.microsoft.windows-media-wax' WINDOWS WAX音频类型,归属类型为AUDIO。
FILE 'general.file' 所有文件的基类型,归属类型为ENTITY。
DIRECTORY11+ 'general.directory' 所有目录的基类型,归属类型为ENTITY。
FOLDER 'general.folder' 所有文件夹的基类型,归属类型为DIRECTORY。
SYMLINK11+ 'general.symlink' 所有符号链接的基类型,归属类型为ENTITY。
ARCHIVE11+ 'general.archive' 所有文件和目录存档文件的基类型,归属类型为OBJECT。
BZ2_ARCHIVE11+ 'general.bz2-archive' BZ2存档文件类型,归属类型为ARCHIVE。
DISK_IMAGE11+ 'general.disk-image' 所有可作为卷装载项的文件类型的基类型,归属类型为ARCHIVE。
TAR_ARCHIVE11+ 'general.tar-archive' TAR存档文件类型,归属类型为ARCHIVE。
ZIP_ARCHIVE11+ 'general.zip-archive' ZIP存档文件类型,归属类型为ARCHIVE。
JAVA_ARCHIVE11+ 'com.sun.java-archive' JAVA存档文件类型,归属类型为ARCHIVE。
GNU_TAR_ARCHIVE11+ 'org.gnu.gnu-tar-archive' GUN存档文件类型,归属类型为ARCHIVE。
GNU_ZIP_ARCHIVE11+ 'org.gnu.gnu-zip-archive' GZIP存档文件类型,归属类型为ARCHIVE。
GNU_ZIP_TAR_ARCHIVE11+ 'org.gnu.gnu-zip-tar-archive' GZIP TAR存档文件类型,归属类型为ARCHIVE。
CALENDAR11+ 'general.calendar' 所有日程类数据的基类型,归属类型为OBJECT。
CONTACT11+ 'general.contact' 所有联系人类数据的基类型,归属类型为OBJECT。
DATABASE11+ 'general.database' 所有数据库文件的基类型,归属类型为OBJECT。
MESSAGE11+ 'general.message' 所有消息类数据的基类型,归属类型为OBJECT。
VCARD11+ 'general.vcard' 所有电子名片类数据的基类型,归属类型为OBJECT。
NAVIGATION11+ 'general.navigation' 所有导航类数据的基类型,归属类型为OBJECT。
LOCATION11+ 'general.location' 导航定位类型,归属类型为NAVIGATION。
OPENHARMONY_FORM 'openharmony.form' 系统定义的卡片类型,归属类型为OBJECT。
OPENHARMONY_APP_ITEM 'openharmony.app-item' 系统定义的桌面图标类型,归属类型为OBJECT。
OPENHARMONY_PIXEL_MAP 'openharmony.pixel-map' 系统定义的像素图类型,归属类型为IMAGE。
OPENHARMONY_ATOMIC_SERVICE11+ 'openharmony.atomic-service' 系统定义的元服务类型,归属类型为OBJECT。
OPENHARMONY_PACKAGE11+ 'openharmony.package' 系统定义的包(即目录的打包文件),归属类型为DIRECTORY。
OPENHARMONY_HAP11+ 'openharmony.hap' 系统定义的能力包,归属类型为OPENHARMONY_PACKAGE。

TypeDescriptor11+

标准化数据类型的描述类,它包含了一些属性和方法用于描述标准化数据类型自身以及和其他标准化数据类型之间的归属与层级关系。

系统能力: SystemCapability.DistributedDataManager.UDMF.Core

名称 类型 可读 可写 说明
typeId11+ string 标准化数据类型的ID(即UniformDataType中对应的枚举值)。
belongingToTypes11+ Array<string> 标准化数据类型所归属的类型typeId列表。
description11+ string 标准化数据类型的简要说明。
referenceURL11+ string 标准化数据类型的参考链接URL,用于描述类型的详细信息。
iconFile11+ string 标准化数据类型的默认图标文件路径,可能为空字符串(即没有默认图标),应用可以自行决定是否使用该默认图标。

belongsTo11+

belongsTo(type: string): boolean

判断当前标准化数据类型是否归属于指定的标准化数据类型。

系统能力: SystemCapability.DistributedDataManager.UDMF.Core

参数:

参数名 类型 必填 说明
type string 所指定的标准化数据类型(即UniformDataType中对应的枚举值)。

返回值:

类型 说明
boolean 返回true表示当前的标准化数据类型归属于所指定的标准化数据类型,包括所指定类型与当前类型相同的情况;返回false则表示无归属关系。

示例:

import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';
import { BusinessError } from '@ohos.base';

try{
    let typeObj : uniformTypeDescriptor.TypeDescriptor = uniformTypeDescriptor.getTypeDescriptor('general.type-script');
    let ret = typeObj.belongsTo('general.plain-text');
    if(ret) {
        console.info('type general.type-script belongs to type general.plain-text');
    }
} catch(e) {
    let error: BusinessError = e as BusinessError;
    console.error(`belongsTo throws an exception. code is ${error.code}, message is ${error.message} `);
}

isLowerLevelType11+

isLowerLevelType(type: string): boolean

判断当前标准化数据类型是否是指定标准化数据类型的低层级类型。例如TYPE_SCRIPT为SOURCE_CODE的低层级类型,TYPE_SCRIPT和SOURCE_CODE为PLAIN_TEXT的低层级类型。

系统能力: SystemCapability.DistributedDataManager.UDMF.Core

参数:

参数名 类型 必填 说明
type string 所指定的标准化数据类型(即UniformDataType中对应的枚举值)。

返回值:

类型 说明
boolean 返回true表示当前的标准化数据类型是所指定标准化数据类型的低层级类型,否则返回false。

示例:

import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';
import { BusinessError } from '@ohos.base';

try{
    let typeObj : uniformTypeDescriptor.TypeDescriptor = uniformTypeDescriptor.getTypeDescriptor('general.type-script');
    let ret = typeObj.isLowerLevelType('general.plain-text');
    if(ret) {
        console.info('type general.type-script is lower level type of type general.plain-text');
    }
} catch(e) {
    let error: BusinessError = e as BusinessError;
    console.error(`isLowerLevelType throws an exception. code is ${error.code}, message is ${error.message} `);
}

isHigherLevelType11+

isHigherLevelType(type: string): boolean

判断当前标准化数据类型是否是指定标准化数据类型的高层级类型。例如SOURCE_CODE为TYPE_SCRIPT的高层级类型,PLAIN_TEXT为SOURCE_CODE和TYPE_SCRIPT的高层级类型。

系统能力: SystemCapability.DistributedDataManager.UDMF.Core

参数:

参数名 类型 必填 说明
type string 所指定的标准化数据类型(即UniformDataType中对应的枚举值)。

返回值:

类型 说明
boolean 返回true表示当前的标准化数据类型是所指定标准化数据类型的高层级类型,否则返回false。

示例:

import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';
import { BusinessError } from '@ohos.base';

try{
    let typeObj : uniformTypeDescriptor.TypeDescriptor = uniformTypeDescriptor.getTypeDescriptor('general.plain-text');
    let ret = typeObj.isHigherLevelType('general.type-script');
    if(ret) {
        console.info('type general.plain-text is higher level type of type general.type-script');
    }
} catch(e) {
    let error: BusinessError = e as BusinessError;
    console.error(`isHigherLevelType throws an exception. code is ${error.code}, message is ${error.message} `);
}

equals11+

equals(typeDescriptor: TypeDescriptor): boolean

判断指定的标准化数据类型描述类对象的类型ID和当前标准化数据类型描述类对象的类型ID是否相同,即TypeDescriptor对象的typeId。

系统能力: SystemCapability.DistributedDataManager.UDMF.Core

参数:

参数名 类型 必填 说明
typeDescriptor TypeDescriptor 待比较的标准化数据类型描述类对象。

返回值:

类型 说明
boolean 返回true表示所比较的标准化数据类型相同;返回false则表示不同。

示例:

import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';
import { BusinessError } from '@ohos.base';

try{
    let typeA : uniformTypeDescriptor.TypeDescriptor = uniformTypeDescriptor.getTypeDescriptor('general.type-script');
    let typeB : uniformTypeDescriptor.TypeDescriptor = uniformTypeDescriptor.getTypeDescriptor('general.python-script');
    if(!typeA.equals(typeB)) {
      console.info('typeA is not equal to typeB');
    }
} catch(e) {
    let error: BusinessError = e as BusinessError;
    console.error(`throws an exception. code is ${error.code}, message is ${error.message} `);
}

uniformTypeDescriptor.getTypeDescriptor11+

getTypeDescriptor(typeId: string): TypeDescriptor

按给定的标准化数据类型ID查询并返回对应的标准化数据类型描述类对象。

系统能力: SystemCapability.DistributedDataManager.UDMF.Core

参数:

参数名 类型 必填 说明
typeId string 标准化数据类型ID。

返回值:

类型 说明
TypeDescriptor 返回标准化数据类型描述类对象,如果要查询的标准化数据类型不存在则返回null。

示例:

import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';
import { BusinessError } from '@ohos.base';

try {
    let typeObj : uniformTypeDescriptor.TypeDescriptor = uniformTypeDescriptor.getTypeDescriptor('com.adobe.photoshop-image');
    if (typeObj) {
        let typeId = typeObj.typeId;
        let belongingToTypes = typeObj.belongingToTypes;
        let description = typeObj.description;
        let referenceURL = typeObj.referenceURL;
        let iconFile = typeObj.iconFile;
        console.info(`typeId: ${typeId}, belongingToTypes: ${belongingToTypes}, description: ${description}, referenceURL: ${referenceURL}, iconFile: ${iconFile}`);
    } else {
        console.info('type com.adobe.photoshop-image does not exist');
    }
} catch(e) {
    let error: BusinessError = e as BusinessError;
    console.error(`getTypeDescriptor throws an exception. code is ${error.code}, message is ${error.message} `);
}

uniformTypeDescriptor.getUniformDataTypeByFilenameExtension11+

getUniformDataTypeByFilenameExtension(filenameExtension: string, belongsTo?: string): string

根据给定的文件后缀名和所归属的标准化数据类型查询标准化数据类型的ID。

系统能力: SystemCapability.DistributedDataManager.UDMF.Core

参数:

参数名 类型 必填 说明
filenameExtension string 文件后缀名称。
belongsTo string 要查询的标准化数据类型所归属类型ID,无默认值,若不传入此参数则只按照文件后缀名称查询标准化数据类型ID。

返回值:

类型 说明
string 返回与给定文件后缀名以及归属类型ID(如果设置了belongsTo参数)匹配的标准化数据类型ID,如果要查询的标准化数据类型不存在则返回null。

示例:

import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';
import { BusinessError } from '@ohos.base';

try {
    let typeId = uniformTypeDescriptor.getUniformDataTypeByFilenameExtension('.ts', 'general.plain-text');
    if(typeId) {
        console.info('typeId is general.type-script');
    }
} catch(e) {
    let error: BusinessError = e as BusinessError;
    console.error(`getUniformDataTypeByFilenameExtension throws an exception. code is ${error.code}, message is ${error.message} `);
}

uniformTypeDescriptor.getUniformDataTypeByMIMEType11+

getUniformDataTypeByMIMEType(mimeType: string, belongsTo?: string): string

根据给定的MIME类型和所归属的标准化数据类型查询标准化数据类型的ID。

系统能力: SystemCapability.DistributedDataManager.UDMF.Core

参数:

参数名 类型 必填 说明
mimeType string MIME类型名称。
belongsTo string 要查询的标准化数据类型所归属类型ID。无默认值,若不传入此参数则只按照MIME类型名称查询标准化数据类型ID。

返回值:

类型 说明
string 返回与MIME类型名称以及归属类型ID(如果设置了belongsTo参数)匹配的标准化数据类型ID,如果要查询的标准化数据类型不存在则返回null。

示例:

import uniformTypeDescriptor from '@ohos.data.uniformTypeDescriptor';
import { BusinessError } from '@ohos.base';

try {
    let typeId = uniformTypeDescriptor.getUniformDataTypeByMIMEType('image/jpeg', 'general.image');
    if(typeId) {
        console.info('typeId is general.jpeg');
    }
} catch(e) {
    let error: BusinessError = e as BusinessError;
    console.error(`getUniformDataTypeByMIMEType throws an exception. code is ${error.code}, message is ${error.message} `);
}