news 2026/6/13 18:25:17

HarmonyOS 企业数据保护:你知道企业相关的APP如何安全管理文件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HarmonyOS 企业数据保护:你知道企业相关的APP如何安全管理文件

什么是企业数据保护

你有没有想过,公司发的手机里的文件怎么保护?比如员工的照片、文档,公司怎么确保这些数据不被泄露?这就是企业数据保护要解决的问题。

EnterpriseDataGuardKit(企业数据保护服务)让企业可以管理设备上的文件。比如扫描设备上的所有文件,查看有哪些文件,然后根据企业策略来保护这些文件。

简单说,这就是一个"文件管家",帮企业管理设备上的文件安全。

核心功能

EnterpriseDataGuardKit 提供以下功能:

  1. 文件扫描:扫描设备上的媒体库和应用沙箱目录。你可以选择只扫描媒体库(照片、视频、文档等),或者同时扫描媒体库和应用沙箱目录。扫描是异步的,扫描过程中会通过回调函数把文件列表返回给你。扫描完成后,也会有一个完成回调,告诉你一共扫描了多少个文件
  2. 文件分级:根据文件类型进行分类管理。扫描出来的文件列表包含了文件的完整路径,你可以根据文件扩展名(.jpg、.pdf、.mp4 等)来分类。分类后可以做很多事情,比如审计报告、文件清理、合规检查等

环境搭建

硬件要求

  • 设备类型:PC/2in1 设备
  • HarmonyOS 系统:HarmonyOS NEXT Developer Beta1 及以上

软件要求

  • DevEco Studio 版本:DevEco Studio 6.0.0 Release 及以上
  • HarmonyOS SDK 版本:HarmonyOS 6.0.0 Release SDK 及以上

搭建步骤

  1. 安装 DevEco Studio:去华为开发者官网下载安装
  2. 配置开发环境:确保网络环境正常
  3. 设备调试:使用真机进行调试

项目结构

├── entry/src/main/ets // 代码区 │ ├── entryability │ │ └── EntryAbility.ets // 程序入口类 │ ├── pages │ │ └── Index.ets // 主界面 └── entry/src/main/resources // 资源文件目录

文件扫描流程

下面是企业数据保护的文件扫描流程:

MEDIA_ONLY

MEDIA_AND_SANDBOX

配置企业 MDM 权限

创建 FileGuard 实例

定义扫描回调函数

选择扫描模式

扫描模式

扫描媒体库目录

扫描媒体库和沙箱目录

回调返回文件列表

处理扫描结果

扫描完成回调

文件分类处理流程

下面是扫描后的文件分类处理流程:

.jpg/.png/.gif

.pdf/.doc/.txt

.mp4/.avi

其他

获取扫描文件列表

遍历文件列表

文件扩展名判断

归类为图片

归类为文档

归类为视频

归类为其他

生成分类报告

执行后续策略

第一步:配置权限

module.json5中添加权限:

{"requestPermissions":[{"name":"ohos.permission.FILE_GUARD_MANAGER"},{"name":"ohos.permission.SET_FILE_GUARD_POLICY"}]}

这两个权限是企业 MDM 应用权限,需要申请企业 MDM 应用发布证书和 Profile。

第二步:导入模块

import{fileGuard}from'@kit.EnterpriseDataGuardKit';

导入企业数据保护模块。

第三步:创建 FileGuard 实例

@Entry@Componentstruct Index{@Statemessage:string='文件分级管控Sample';@Stateres:string='';privatefileGuard=newfileGuard.FileGuard();

创建FileGuard实例,这个实例用来管理文件扫描任务。

第四步:定义回调函数

// 文件扫描结果处理回调函数onRecvFilelist(files:Array<string>):void{console.info(`[scanFileGuard] file length is${files.length}.`);files.forEach((value,index)=>{console.info(`[scanFileGuard] getFileList get one file${value}.`);})}// 扫描任务结束完成回调函数onCompleteTask(count:number):void{console.info(`[scanFileGuard] getFileList Scan finished. count is${count}.`);}

定义两个回调函数:

  • onRecvFilelist:接收到扫描到的文件列表时调用
  • onCompleteTask:扫描任务完成时调用

第五步:启动文件扫描

privategetFileList(){try{letscanFileCallback:fileGuard.ScanFileCallback={onReceiveFileList:this.onRecvFilelist,onTaskCompleted:this.onCompleteTask,};this.fileGuard.startFileScanTask(fileGuard.CommonDirScanType.MEDIA_AND_SANDBOX,scanFileCallback);this.res='success';}catch(err){console.error(`[scanFileGuard] Failed to get file list, Code:${err.code}, message:${err.message}`);}}

启动文件扫描:

  1. 创建回调对象,把两个回调函数传进去
  2. 调用startFileScanTask启动扫描
  3. CommonDirScanType.MEDIA_AND_SANDBOX表示扫描媒体库和应用沙箱目录

扫描模式

EnterpriseDataGuardKit 支持两种扫描模式:

  • MEDIA_ONLY:只扫描媒体库目录
  • MEDIA_AND_SANDBOX:扫描媒体库和应用沙箱目录

实际应用场景

企业数据保护在实际开发中有很多用途:

文件审计

// 扫描设备上的所有文件,生成审计报告onRecvFilelist(files:Array<string>):void{letreport={totalFiles:files.length,imageCount:files.filter(f=>f.endsWith('.jpg')||f.endsWith('.png')).length,documentCount:files.filter(f=>f.endsWith('.pdf')||f.endsWith('.doc')).length,// ...};// 上传审计报告}

文件分类

// 根据文件类型进行分类onRecvFilelist(files:Array<string>):void{letcategories={images:files.filter(f=>/\.(jpg|png|gif)$/.test(f)),documents:files.filter(f=>/\.(pdf|doc|txt)$/.test(f)),videos:files.filter(f=>/\.(mp4|avi)$/.test(f)),};// 根据分类进行不同处理}

文件清理

// 清理不需要的文件onRecvFilelist(files:Array<string>):void{lettempFiles=files.filter(f=>f.includes('temp')||f.includes('cache'));// 删除临时文件}

适用场景

企业数据保护适合以下场景:

  • 企业 MDM:企业移动设备管理
  • 文件审计:审计设备上的文件
  • 数据防泄露:防止企业数据泄露
  • 合规管理:确保设备符合企业安全策略

注意事项

  1. 权限要求:需要企业 MDM 应用权限,普通应用无法使用
  2. 设备支持:目前只支持 PC/2in1 设备
  3. 扫描范围:可以扫描媒体库和应用沙箱目录
  4. 回调处理:回调函数要轻量,不要做耗时操作
  5. 隐私合规:使用文件扫描功能要遵守隐私法规

总结

EnterpriseDataGuardKit 让企业可以管理设备上的文件安全,核心流程:

  1. 配置企业 MDM 权限
  2. 创建 FileGuard 实例
  3. 定义扫描回调函数
  4. 启动文件扫描任务
  5. 处理扫描结果

掌握了这些,你就能为企业应用添加文件安全管理功能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 22:47:26

ThinkPHP6 + Vue3 Arco Design 实战型CMS源码,含完整前后端与数据库脚本

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;直接可跑的CMS系统源码&#xff0c;后端用ThinkPHP6搭建&#xff0c;支持路由分组、中间件拦截、模型ORM操作和多数据库配置&#xff1b;前端基于Vue 3 Vite&#xff0c;使用Arco Design组件库实现响应式界面&…

作者头像 李华
网站建设 2026/6/14 0:15:14

软考 系统架构设计师历年真题集萃(275)

接前一篇文章:软考 系统架构设计师历年真题集萃(274) 第547题 系统输入设计中,采用内部控制方式以确保输入系统数据的有效性,( )用于验证数据是否位于合法的取值范围。 A. 数据类型检查 B. 自检位 C. 域检查 D. 格式检查 正确答案:C。 试题解析: 系统输入设计中…

作者头像 李华
网站建设 2026/6/14 0:28:04

JDWP Shellifier 深度解析:Java 调试协议的安全攻防实战指南

JDWP Shellifier 深度解析&#xff1a;Java 调试协议的安全攻防实战指南 【免费下载链接】jdwp-shellifier 项目地址: https://gitcode.com/gh_mirrors/jd/jdwp-shellifier JDWP Shellifier 是一款专门针对 Java Debug Wire Protocol (JDWP) 服务进行安全测试与利用的开…

作者头像 李华
网站建设 2026/6/14 1:05:44

从BARBER到代码:图解Horspool字符串匹配算法的四种移动规则

从BARBER到代码&#xff1a;图解Horspool字符串匹配算法的四种移动规则在计算机科学领域&#xff0c;字符串匹配是一个基础而重要的问题。想象一下&#xff0c;你正在编辑一个巨大的文本文档&#xff0c;需要快速找到某个特定单词或短语的所有出现位置——这正是字符串匹配算法…

作者头像 李华
网站建设 2026/6/14 4:16:02

模拟开关实战指南:从原理到应用,避开音频电路设计陷阱

1. 从机械到模拟&#xff1a;为什么我们需要重新认识“开关”在便携式设备、智能硬件和各类嵌入式系统的设计中&#xff0c;信号路由和通道切换是一个基础但至关重要的环节。回想早期的设计&#xff0c;我们常常依赖机械开关或继电器来完成这项工作。它们的工作原理直观&#x…

作者头像 李华