应用内隐私信息被窥视?防窥保护自动感知一键防护

用户在使用各类应用时时,都可能有过屏幕被窥视的经历,比如在与朋友分享相片时,不小心露出相册中其他敏感图片,又或者在付款时,被他人窥视到屏幕上的个人资产、交易记录、收藏偏好等隐私信息,移动应用隐私泄露隐患时有发生,却无法被人为感知并及时防范。

面对这一痛点,HarmonyOS SDK设备安全服务(Device Security Kit)提供了防窥保护能力,支持应用通过系统智能判断,将长期通过人脸解锁手机的人作为防窥保护的机主,并通过传感器判断设备周边环境,根据屏幕被窥视状态提供风险提示,比如在非机主状态下不进行个性化推荐,同时拉起系统级蒙层遮盖窗口,从而隐藏浏览记录、支付记录、收藏记录等敏感信息,保护机主隐私。

机主查看相册,当有非机主偷窥时,拉起系统蒙层遮盖窗口

那么,应用内如何能够实现防窥保护功能呢?

前提条件

  1. 设备侧需要满足一些条件。首先,用户需要在设备内开启人脸识别,并录入人脸信息;其次,设备上需要存在防窥保护选项,开发者可通过在设备上选择"设置 > 隐私与安全 > 防窥保护"查看防窥保护选项。

  2. 系统版本需满足以下条件:HarmonyOS系统需在HarmonyOS 6.0.0 Beta1及以上;DevEco Studio版本需在6.0.0 Beta1及以上;HarmonyOS SDK版本需在 6.0.0 Beta1 SDK及以上。

  3. 此外,用户使用该能力时还需要注意一些约束与限制,由于防窥保护功能通过传感器智能判断判断用户周边环境,因此为了避免识别误差,在使用过程中,人脸距离设备需在一定的范围内,且人脸没有遮挡,周围环境光线充足。

业务流程

开发步骤

  1. 导入防窥保护模块及相关公共模块。

    import { dlpAntiPeep } from '@kit.DeviceSecurityKit';
    import { window } from '@kit.ArkUI';
    import { common } from '@kit.AbilityKit';

  2. 调用检查接口确认当前应用是否开启防窥保护,开启防窥保护时调用防窥保护订阅接口获取窥视状态信息。

    @Entry
    @Component
    struct Index {
    @State message: string = 'DlpAntiPeep';
    private hasShownMask: boolean = false;

    // 防窥状态变化回调
    private onStatusChange = async (status: dlpAntiPeep.DlpAntiPeepStatus): Promise => {
    if (status === dlpAntiPeep.DlpAntiPeepStatus.PASS) { // 表示当前状态为无人窥视
    console.info('DlpAntiPeepStatus is PASS.');
    } else if (status === dlpAntiPeep.DlpAntiPeepStatus.HIDE) { // 表示有人在窥屏,应用可以进行隐私保护操作。
    console.info('DlpAntiPeepStatus is HIDE.');
    if (!this.hasShownMask) {
    await this.setMaskLayer(); // 拉起系统蒙层
    }
    }
    }

    // 检查防窥保护开关并订阅通知
    async aboutToAppear() {
    try {
    const isOpen = await dlpAntiPeep.isDlpAntiPeepSwitchOn();
    if (isOpen) {
    dlpAntiPeep.on('dlpAntiPeep', this.onStatusChange);
    } else {
    // 开关未开启,引导用户设置
    const context = this.getUIContext().getHostContext() as common.UIAbilityContext;
    const result = await dlpAntiPeep.requestAntiPeepOptions(context);
    if (result === dlpAntiPeep.AntiPeepOptionsResult.SUCCESS ||
    result === dlpAntiPeep.AntiPeepOptionsResult.ALREADY_ON) { // 表示防窥保护开关开启成功或已开启
    dlpAntiPeep.on('dlpAntiPeep', this.onStatusChange);
    }
    }
    } catch (error) {
    console.error(Failed to init DlpAntiPeep. Code: ${error.code}, message: ${error.message});
    }
    }

    // 取消订阅防窥保护通知
    aboutToDisappear() {
    try {
    dlpAntiPeep.off('dlpAntiPeep', this.onStatusChange);
    } catch (error) {
    console.error(Failed to off DlpAntiPeep. Code: ${error.code}, message: ${error.message});
    }
    }

    onPageShow() {
    console.info('Page shown, reset mask flag');
    this.hasShownMask = false;
    }

    // 拉起系统蒙层
    private async setMaskLayer(): Promise {
    try {
    const context = this.getUIContext().getHostContext() as common.UIAbilityContext;
    const windowClass = await window.getLastWindow(context);
    const windowId = windowClass.getWindowProperties().id;
    await dlpAntiPeep.setAntiPeepMaskLayer(windowId);
    this.hasShownMask = true; // 避免窥视状态时频繁拉起蒙层
    } catch (error) {
    console.error(Failed to set AntiPeep MaskLayer. Code: ${error.code}, message: ${error.message});
    }
    }

    build() {
    Column() {
    Text(this.message)
    .fontSize(20)
    .margin(20)
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
    }
    }

从传感器到蒙层,防窥保护能力通过毫秒级防窥响应技术,帮助应用构建以用户为中心的隐私保护高墙,未来,HarmonyOS SDK设备安全服务将为各大应用构建更多以用户为中心的安全防线。

了解更多详情>>

访问设备安全服务联盟官网

获取防窥保护开发指导文档

相关推荐
心中有国也有家4 小时前
AtomGit Flutter 鸿蒙客户端:E-Brufen 架构设计
学习·flutter·华为·harmonyos
hqzing5 小时前
鸿蒙 PC 底层开发技术详解(七):二进制自签名算法的实现
算法·华为·harmonyos
心中有国也有家6 小时前
鸿蒙 Flutter 本地存储实战:Hive CE 从入门到精讲
人工智能·hive·flutter·华为·harmonyos
绝世番茄6 小时前
鸿蒙原生ArkTS布局方式之Grid+scrollBar滚动条布局深度解析
华为·harmonyos·鸿蒙
绝世番茄8 小时前
鸿蒙原生ArkTS布局方式之Grid固定列数网格深度解析(HarmonyOS NEXT API 24)
华为·harmonyos·鸿蒙
爱吃大芒果8 小时前
AI 智能体工作流设计蓝图:将非结构化情绪记录转化为高精度的模型 Prompt 上下文
人工智能·华为·prompt·harmonyos
●VON8 小时前
HarmonyKit | HarmonyOS Kit 模块化体系与零依赖架构实践
ui·华为·架构·harmonyos·鸿蒙·新特性
在书中成长8 小时前
HarmonyOS 小游戏《对战五子棋》开发第9篇 - GomokuEngine核心引擎设计(四):悔棋功能与历史记录管理
华为·harmonyos
在书中成长10 小时前
HarmonyOS 小游戏《对战五子棋》开发第8篇 - GomokuEngine核心引擎设计(三):五子连珠判定算法
算法·华为·harmonyos
川石课堂软件测试10 小时前
性能测试|Nginx中间件监控与调优
linux·python·nginx·中间件·单元测试·压力测试·harmonyos