# DLPManager
### 介绍
本示例主要展示了DLP文件管理相关的功能,使用[@ohos.dlpPermission](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-data-protection-kit/js-apis-dlppermission-sys.md)、[@ohos.file.fs](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-file-fs.md)、[@ohos.file.fileAccess](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-fileAccess-sys.md)、[@ohos.file.picker](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-file-picker.md)、[@ohos.app.ability.Want](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-want.md)等接口,实现了生成和打开DLP文件、查看原始应用沙箱目录的原始文件打开列表、编辑保存文件、拉取文件夹、查看文件权限和监听DLP文件的功能。
### 效果预览
|主页|文件内容页|
|--------------------------------|--------------------------------|
|
|
|
使用说明
1.进入界面,显示原始应用沙箱目录获取原始文件访问列表。
2.点击右上角的图标,可以获取沙箱保留信息。
3.点击右下角的加号图标,可以跳转进入文件夹。
4.点击某个文件,可以显示其文件内容。
5.在文件显示页面,可以点击下面的编辑图标对文件内容进行编辑,编辑后点击保存图标进行保存;点击更多可以文件另存为,查看权限。
6.设置txt文件权限时需输入用户账号点击回车后才能点击确认按钮。
### 工程目录
```
entry/src/main/ets/
|---entryability
| |---EntryAbility.ets // dlpSample应用的ability
| |---FuncAbility.ets // dlp文件显示的ability
|---media
| |---dlpPage.ets // dlp文件内容页
| |---filePage.ets // 原始文件内容页
| |---MediaFileUri.ts // 函数方法
|---pages
| |---Index.ets // 首页
|---utils
| |---Logger.ts // 日志工具
```
### 具体实现
* 本实例获取DLP文件和普通文件列表的功能结主要封装在Index,源码参考:[Index.ets](entry/src/main/ets/pages/Index.ets) 。
* 获取列表信息:在Index页面中通过onPageShow()调用fs.listFile()、fs.stat()等方法能够应用沙箱路径下的原始文件列表;通过context.startAbility(want)对DLP文件进行生成和打开,通过dlpPermission的接口查看DLP文件的权限。
### 相关权限
| 权限名 | 权限说明 | 级别 |
| ------------------------------------------------------------ | --------------------------------------------- | ------------ |
| [ohos.permission.MEDIA_LOCATION](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissionmedia_location) | 允许应用访问用户媒体文件中的地理位置信息 | normal |
| [ohos.permission.FILE_ACCESS_MANAGER](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionfile_access_manager) | 允许文件管理类应用通过FAF框架访问公共数据文件 | system_basic |
| [ohos.permission.GET_BUNDLE_INFO_PRIVILEGED](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionget_bundle_info_privileged) | 允许查询应用的基本信息和敏感信息 | system_basic |
| [ohos.permission.ACCESS_DLP_FILE](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionaccess_dlp_file) | 允许对DLP文件进行权限配置和管理 | system_core |
| [ohos.permission.START_INVISIBLE_ABILITY](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionstart_invisible_ability) | 无论Ability是否可见,都允许应用进行调用 | system_core |
### 依赖
不涉及。
### 约束与限制
1.本示例仅支持标准系统上运行。
2.本示例已适配API version 11版本SDK,版本号:4.1.3.3。
3.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400 构建 2023年4月7日)及以上版本才可编译运行。
4.本示例签名时需修改sdk文件夹下`UnsgnedReleasedProfileTemplate.json`文件,如下所示:
```json
{
"bundle-info": {
"developer-id": "OpenHarmony",
"distribution-certificate": "",
"bundle-name": "com.sample.dlpmanager",
"apl": "normal",
"app-feature": "hos_system_app"
},
"acls": {
"allowed-acls": [
"ohos.permission.MEDIA_LOCATION",
"ohos.permission.FILE_ACCESS_MANAGER",
"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
"ohos.permission.ACCESS_DLP_FILE",
"ohos.permission.START_INVISIBLE_ABILITY",
"ohos.permission.START_ABILITIES_FROM_BACKGROUND",
"ohos.permission.ABILITY_BACKGROUND_COMMUNICATION",
"ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS",
"ohos.permission.MANAGE_LOCAL_ACCOUNTS",
"ohos.permission.PROXY_AUTHORIZATION_URI"
]
}
}
```
### 下载
如需单独下载本工程,执行如下命令:
```
git init
git config core.sparsecheckout true
echo code/SystemFeature/Security/DLPManager > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master
```