设置禁止截屏的隐私模式

设置禁止截屏的隐私模式

HarmonyOS
2024-05-21 22:05:42
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
pfuchenlu

本文主要讲如何设置一个隐藏模式,在我们需要将手机的部分文件或者窗口保密,就需要设置成禁止截屏的模式

使用的核心API

这个demo将用到的是setPrivacyMode接口,

设置窗口是否为隐藏模式,使用callback异步回调。

设置为隐藏模式的窗口,窗口内容将无法被截屏或录屏

核心代码解释

import { BusinessError } from '@ohos.base'; 
import window from '@ohos.window'; 
@Entry 
@Component 
struct Index { 
  @State message: string = 'Hello World'; 
  build() { 
    Row() { 
      Column() { 
        Text(this.message) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
        Button() { 
          Text("开启隐藏") 
        } 
        .width(80) 
        .height(60) 
        .onClick(() => { 
          let isPrivacyMode: boolean = true; 
          try { 
            window.getLastWindow(getContext(), (err: BusinessError, data) => { 
              const errCode = err.code; 
              if (errCode) { 
                return; 
              } 
              let promise = data.setWindowPrivacyMode(isPrivacyMode); 
              promise.then(() => { 
                this.message = "隐私模式"; 
                console.info('已成功将窗口设置为隐私模式.'); 
              }).catch((err: BusinessError) => { 
                console.error('Failed to set the window to privacy mode. Cause: ' + JSON.stringify(err)); 
              }); 
            }) 
          } catch (exception) { 
            console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(exception)); 
          } 
        }) 
        Text(this.message) 
          .fontSize(50) 
          .fontWeight(FontWeight.Bold) 
        Button() { 
          Text("关闭隐藏") 
        } 
        .width(80) 
        .height(60) 
        .onClick(() => { 
 
          let isPrivacyMode: boolean = false; 
          try { 
            window.getLastWindow(getContext(), (err: BusinessError, data) => { 
              const errCode = err.code; 
              if (errCode) { 
                return; 
              } 
              let promise = data.setWindowPrivacyMode(isPrivacyMode); 
              promise.then(() => { 
                this.message = "已关闭"; 
                console.info('已成功关闭将窗口设置为隐私模式.'); 
              }).catch((err: BusinessError) => { 
                console.error('Failed to set the window to privacy mode. Cause: ' + JSON.stringify(err)); 
              }); 
            }) 
          } catch (exception) { 
            console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(exception)); 
          } 
        }) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}

实现效果

适配的版本信息

1. IDE:DevEco Studio 4.0.3.600

2. SDK:HarmoneyOS 4.0.0.41

分享
微博
QQ
微信
回复
2024-05-22 18:01:10
相关问题
隐私模式设置后窗口是如何展示
668浏览 • 1回复 待解决
如何、录、投
443浏览 • 1回复 待解决
如何获取事件和数据
658浏览 • 1回复 待解决
求大佬告知如何实现防功能
785浏览 • 1回复 待解决
如何实现防功能,有人知道吗?
734浏览 • 1回复 待解决
有谁知道如何使用hdc命令
1083浏览 • 2回复 待解决
原来下滑出现功能哪去了?
5540浏览 • 1回复 待解决
setRingerMode设置静音模式报错
4467浏览 • 1回复 待解决
使用功能系统后,有白线
5427浏览 • 2回复 待解决
设置飞行模式,屏幕找图
2850浏览 • 1回复 待解决
OpenHarmony 小型系统如何设置横竖
6461浏览 • 1回复 待解决
如何设置屏幕方向为横
424浏览 • 1回复 待解决
hilog如何打印{private}隐私标志内容
904浏览 • 1回复 待解决
隐私安全页面跳转实践
1023浏览 • 1回复 待解决
如何将页面设置为深色模式
695浏览 • 1回复 待解决
Text模拟隐私协议,有好方案吗?
373浏览 • 1回复 待解决
如何禁止Tabs系统切换逻辑
569浏览 • 0回复 待解决