HarmonyOS实战开发DLP-如何实现一个安全类App。

介绍

本示例是一个安全类App,使用@ohos.dlpPermission 接口展示了在eTS中普通文件加密受限的过程。

效果预览

在这里插入图片描述
使用说明:

1.启动应用后点击“+”按钮可以添加一个普通文件;
2.长按点击加密按钮,出现加密权限弹窗,选择需要设置的权限并点击确定;
3.点击加密文件,跳转到文本编辑应用,如果设置的权限是只读权限,页面置灰,不可编辑。
4.长按点击删除按钮,删除文件;

工程目录

entry/src/main/ets/
|---component
|   |---CustomDialog.ets                        // 权限弹窗
|---feature
|   |---DlpManager.ets                          // Dlp管理
|   |---FileManager.ets                         // 文件管理
|   |---PreferencesManager.ets                  // 持久化存储
|---pages
|   |---Index.ets                               // 首页
|---util
|   |---Logger.ts                               // 日志
|   |---ResourceUtils.ets                       // 资源转换

具体实现

  • 文件的添加和文件列表的获取分别在Index和MediaFileUri中
  • 文件的添加:首先通过@ohos.file.picker接口的DocumentSaveOptions()方法自定一个参数,然后通过newpicker.DocumentViewPicker()方法拉起文件管理应用去新建一个普通文件。
  • 文件列表的获取:首先使用@ohos.file.fileAccess接口的createFileAccessHelper()方法来创建连接指定wants的helper对象,然后通过getRoots()方法来获取helper对象连接的文件管理服务类的设备根节点信息,并获取到目录url,最后通过getFileInfoFromUri()方法得到文件的信息。
  • 文件的加密操作在DlpManager中
  • 加密操作:使用dlpPermission接口的generateDLPFile方法获得一个相关的操作型关系数据库RdbStore,将明文文件加密生成权限受控文件。

相关权限

允许应用读取用户外部存储中的媒体文件信息:ohos.permission.READ_MEDIA

允许应用读写用户外部存储中的媒体文件信息:ohos.permission.WRITE_MEDIA

允许文件管理类应用通过FAF框架访问公共数据文件:ohos.permission.FILE_ACCESS_MANAGER

允许应用读取用户外部存储中的媒体文件信息:ohos.permission.STORAGE_MANAGER

允许应用读取用户外部存储中的媒体文件信息:ohos.permission.GET_BUNDLE_INFO_PRIVILEGED

允许应用读取用户外部存储中的媒体文件信息:ohos.permission.ACCESS_DLP_FILE

允许应用读取用户外部存储中的媒体文件信息:ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS

允许应用读取用户外部存储中的媒体文件信息:ohos.permission.MANAGE_LOCAL_ACCOUNTS

允许应用读取用户外部存储中的媒体文件信息:ohos.permission.GET_LOCAL_ACCOUNTS

允许应用读取用户外部存储中的媒体文件信息:ohos.permission.MANAGE_DISTRIBUTED_ACCOUNTS

依赖

需要依赖三方应用文本编辑FileEdit的hap。

约束与限制

1.本示例仅支持标准系统上运行;
2.本示例仅支持API10版本SDK,SDK版本号(4.0.10.10), 镜像版本号(4.0 Release)。
3.本示例需要使用DevEco Studio 4.0 Beta2 (Build Version: 4.0.0.400, built on August 2, 2023)才可编译运行;
4.本示例需要使用@@ohos.dlpPermission系统权限的系统接口。使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换。

下载

如需单独下载本工程,执行如下命令:

git init
git config core.sparsecheckout true
echo code/ SystemFeature/Security/DLP/ > .git/info/sparse-checkout
git remote add origin https://gitee.com/openharmony/applications_app_samples.git
git pull origin master

为了帮助大家更深入有效的学习到鸿蒙开发>鸿蒙开发知识点,小编特意给大家准备了一份全套最新版的HarmonyOS NEXT学习资源,获取完整版方式请点击→HarmonyOS教学视频:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

HarmonyOSArkTSTypeScriptArkUI_86">HarmonyOS教学视频:语法ArkTS、TypeScript、ArkUI等…视频教程

在这里插入图片描述
在这里插入图片描述

鸿蒙生态应用开发白皮书V2.0PDF: 获取完整版白皮书方式请点击→https://docs.qq.com/doc/DZVVkRGRUd3pHSnFG?u=a42c4946d1514235863bb82a7b2ac128

在这里插入图片描述

鸿蒙 (Harmony OS)开发学习手册→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

一、入门必看

1.应用开发导读(ArkTS)
2………
在这里插入图片描述

二、HarmonyOS 概念→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.系统定义
2.技术架构
3.技术特性
4.系统安全
5…

在这里插入图片描述

三、如何快速入门?→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.基本概念
2.构建第一个ArkTS应用
3…

在这里插入图片描述

四、开发基础知识→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
在这里插入图片描述

五、基于ArkTS 开发→https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
在这里插入图片描述

更多了解更多鸿蒙开发>鸿蒙开发的相关知识可以参考:https://docs.qq.com/doc/DZVVBYlhuRkZQZlB3


http://www.niftyadmin.cn/n/5476794.html

相关文章

UE4_动画基础_ 使用分层动画(Using Layered Animations)

完成在移动过程中武器发射的角色制作! 动画混合仅仅意味着在一个角色或骨架网格体上的两个或多个动画之间进行平滑过渡。在虚幻引擎4中,有多种方法可以应用这种混合,要么通过混合空间,或通过实际组合两个基于加权偏差或alpha值的…

【QT教程】QT6样式表与主题

QT6样式表与主题 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频免费看 免费…

会计系统设计的一些经验

自 2019 年,我加入财务系统团队,已经 5 年,早几年基本都懵懂着,无法把握住这个系统的本质。 我们设计并实现的这个系统,本质上,是一个会计信息系统。不是一般的交易系统。 系统的本质 从我今天的理解来看…

03-JAVA设计模式-适配器模式

适配器模式 设么是适配器模式 它属于结构型模式,主要用于将一个类的接口转换成客户端所期望的另一种接口,从而使得原本由于接口不兼容而无法协同工作的类能够一起工作。 适配器模式主要解决的是不兼容接口的问题。在软件开发中,经常会有这…

Electron 是一个流行的框架

Electron 是一个流行的框架,允许开发者使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用程序。如果你想将你的 Electron 应用程序打包成一个 APK 文件(Android 应用程序包),那么你可能会遇到一些问题,因为 Electron…

多线程JUC 第2季 JMM的内存结构和作用

一 JMM的作用 1.1 介绍 正常情况cpu的的运行,需要从缓存中读取数据,缓存从内存加载数据。但是就存在一个问题,内存和缓存数据存在不一致的问题。 解决的策略就是JMM,jmm就是屏蔽各个操作系统以及硬件之间的访问差异。实现让jav…

题目:学习使用register定义变量的方法。

题目:学习使用register定义变量的方法。 There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated …

stable diffusion的从安装到使用

stable-diffusion,一个免费开源的文生图软件,文章主要讲怎么从源码开始安装,以及使用的方式 git地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui 本人电脑环境win10,软件pycharm,需要提前…