HarmonyOS 鸿蒙Next 设置不允许录屏的代码是在哪里设置

HarmonyOS 鸿蒙Next 设置不允许录屏的代码是在哪里设置 设置不允许录屏的代码是在哪里设置
我在Login页面中调用setWindowPrivacyMode禁止截屏/录屏 这个代码,发现应用闪退

2 回复

1、一些页面需要实现防录屏功能,首先需要在module.json5中申请隐私窗口权限

"requestPermissions": [
  {
    "name" : 'ohos.permission.PRIVACY_WINDOW'
  }
],

2、在EntryAbility文件中

let windowClass: window.Window = windowStage.getMainWindowSync();
// 获取应用主窗口
AppStorage.setOrCreate("windowClass",windowClass);
windowStage.loadContent('pages/Index', (err) => {
  if (err.code) {
    hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
    return;
  }
  hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.');
});

3、Index文件中

import { window } from '@kit.ArkUI';
import { BusinessError } from '@ohos.base';
@Entry
@Component
struct Index {
  private windowStage = AppStorage.get("windowStage") as window.WindowStage
  private windowClass = AppStorage.get("windowClass") as window.Window
  @State message: string = 'Hello World';
  build() {
    Row() {
      Column() {
        Text('禁止录屏')
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            let isPrivacyMode: boolean = true;
            try {
              this.windowClass.setWindowPrivacyMode(isPrivacyMode, (err: BusinessError) => {
                const errCode: number = err.code;
                if (errCode) {
                  console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(err));
                  return;
                }
                console.info('Succeeded in setting the window to privacy mode.');
              });
            } catch (exception) {
              console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(exception));
            }
          })
        Text('允许录屏')
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            let isPrivacyMode: boolean = false;
            try {
              this.windowClass.setWindowPrivacyMode(isPrivacyMode, (err: BusinessError) => {
                const errCode: number = err.code;
                if (errCode) {
                  console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(err));
                  return;
                }
                console.info('Succeeded in setting the window to privacy mode.');
              });
            } catch (exception) {
              console.error('Failed to set the window to privacy mode. Cause:' + JSON.stringify(exception));
            }
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

更多关于HarmonyOS 鸿蒙Next 设置不允许录屏的代码是在哪里设置的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,设置不允许录屏的功能通常是通过应用层面的权限管理来实现的,而非直接在代码中进行设置。鸿蒙系统为开发者提供了丰富的API和权限管理机制,以控制应用的各种行为,包括屏幕录制。

要实现禁止录屏的功能,开发者需要在应用的manifest文件中声明对应的权限,并在运行时检查用户是否授予了该权限。然而,鸿蒙系统并没有提供一个直接的API或配置项来全局禁止录屏,这是由系统设计和用户隐私保护的原则所决定的。

如果你的应用需要防止屏幕内容被录制,可以采取以下措施:

  1. 应用内提示:在应用的关键界面或功能处添加提示,告知用户当前内容不允许录屏。

  2. 使用屏幕保护技术:采用动态水印、防录屏算法等技术手段,增加录屏内容的识别难度和去除成本。

  3. 依赖系统权限管理:通过系统权限管理,确保应用在没有获得录屏权限的情况下运行。但这需要用户配合,无法完全防止恶意录屏。

请注意,以上方法并不能完全杜绝录屏行为,只能在一定程度上增加录屏的难度和成本。如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部