# EnterpriseDataGuardKit_SampleCode-ArkTs
**Repository Path**: harmonyos_samples/enterprise-data-guard-kit_-sample-code-arkts
## Basic Information
- **Project Name**: EnterpriseDataGuardKit_SampleCode-ArkTs
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2024-06-19
- **Last Updated**: 2025-08-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 企业数据保护服务
## 介绍
本示例主要展示了数据保护服务相关的功能,使用@kit.EnterpriseDataGuardKit、@kit.CoreFileKit等接口,实现了打开读取文件、设置查询文件标签、扫描公共目录文件清单、删除文件、下发KIA文件清单、下发网络拦截策略和查询文件URI的功能。
仅供企业安全管控类MDM应用申请权限后使用。
## 效果预览
| 应用入口 | 应用主页 | 接口使用按钮 | 日志输出 |
|-------------------------------------------------------|--------------------------------------------------------|----------------------------------------------------------|----------------------------------------------------------|
| 点击图标打开应用 | 应用主页显示在设备屏幕 | 点击接口测试按钮调用接口 | 接口调用通过日志输出 |
|
|
|
|
|
使用说明
1.在项目根目录下执行[test.bat](test.bat)脚本,发送[test.json](test.json)到设备上。
2.在应用中心选中应用"label"打开sample应用。
3.打开应用后应用界面会显示在屏幕上。
4.点击按钮调用对应接口,如点击"测试1:扫描公共目录"。
5.接口调用结果输出到日志中。
## 工程目录
```
├──entry/src/main/ets // 代码区
│ ├──svcability
│ │ ├──ScanFileGuard.ts // 文件扫描工具类
│ ├──entryAbility
│ │ └──EntryAbility.ts // 程序入口类
│ └──pages
│ ├──Index.ets // 主页面
└──entry/src/main/resources // 应用资源目录
```
## 具体实现(接口参考@hms.pcService.fileGuard.d.ts)
- 扫描公共目录接口清单接口代码实现都在ScanFileGuard.ts中
- 使用new fileGuard Guard()获取FileGuard对象
- 实现两个回调函数用于接收文件清单和通知扫描结束
```
onReceiveFileList(files: Array): void;
onTaskCompleted(count: number): void;
```
- 调用fileGuard.startFileScanTask开始扫描公共目录
- 打开文件接口代码实现都在ScanFileGuard.ts中
- 使用new fileGuard.FileGuard()获取FileGuard对象
- 调用fileGuard.openFile传入文件路径打开文件
- 设置文件标签和查询文件标签代码实现都在ScanFileGuard.ts中
- 使用new fileGuard.FileGuard()获取FileGuard对象
- 调用fileGuard.setFileTag设置文件标签
- 调用fileGuard.queryFileTag查询文件标签
- 查询文件URI代码实现都在ScanFileGuard.ts中
- 使用new fileGuard.FileGuard()获取FileGuard对象
- 调用fileGuard.getFileUri查询文件URI
- 删除文件代码实现都在ScanFileGuard.ts中
- 使用new fileGuard.FileGuard()获取FileGuard对象
- 调用fileGuard.deleteFile删除文件
- 设置KIA文件清单代码实现都在ScanFileGuard.ts中
- 使用new fileGuard.FileGuard()获取FileGuard对象
- 调用fileGuard.setKiaFilelist设置KIA清单
```json
{
"kia_filelist":[
"/data/service/el2/100/hmdfs/account/files/Docs/Documents/aaa.docx",
"/data/service/el2/100/hmdfs/account/files/Docs/Documents/bbb.docx"
]
}
```
- 下发网络拦截策略代码实现都在ScanFileGuard.ts中
- 使用new fileGuard.FileGuard()获取FileGuard对象
- 调用fileGuard.updatePolicy下发策略
```json
{
"net_intercept_toggle":0,
"boundary":[
"10.10.0.0-10.10.255.255.255",
"0.0.0.0-1.1.1.1"
],
"netsegment_trustlist":["10.10.0.0-10.10.255.255.255"],
"netsegment_blocklist":[ "0.0.0.0-1.1.1.1"],
"default_policy":0
}
```
- 订阅和取消订阅KIA文件拷贝、重命名和压缩事件代码实现都在ScanFileGuard.ts中
- 使用new fileGuard.FileGuard()获取FileGuard对象
- 调用fileGuard.setKiaFilelist设置KIA文件清单和压缩类型
- 调用接口on或off,订阅或取消订阅KIA文件拷贝、重命名和压缩事件
- 对KIA文件进行变种操作如拷贝、重命名和压缩时处理回调事件,如果确认是拷贝、重命名变种事件时需要更新并重新下发KIA清单
```json
{
"kia_filelist":[
"/data/service/el2/100/hmdfs/account/files/Docs/Documents/aaa.txt",
"/data/service/el2/100/hmdfs/account/files/Docs/Documents/bbb.txt"
],
"compress_suffix": [".rar", ".zip"]
}
```
- 设置KIA文件水印图片代码实现都在ScanFileGuard.ts中
- 使用new fileGuard.FileGuard()获取FileGuard对象
- 将图片转为Uint8Array类型,然后调用fileGuard.setKiaWatermarkImage设置KIA文件水印图片
## 相关权限
ohos.permission.SET_FILE_GUARD_POLICY
ohos.permission.FILE_GUARD_MANAGER
该权限为企业MDM应用权限,如需使用,需先申请发布证书和发布Profile,更多详情请参见[申请企业MDM应用发布证书](https://developer.huawei.com/consumer/cn/doc/app/agc-help-enterprise-mdm-cert-0000002283256801)和[申请企业MDM应用发布Profile](https://developer.huawei.com/consumer/cn/doc/app/agc-help-enterprise-mdm-profile-0000002248341094)。
## 约束与限制
1. 本示例仅支持PC/2in1上运行。
2. HarmonyOS系统:HarmonyOS NEXT Developer Beta1及以上。
3. DevEco Studio版本:DevEco Studio NEXT Developer Beta1及以上。
4. HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta1 SDK及以上。