写点什么

Flutter OHOS fluttertpc_screenshot_callback

作者:flfljh
  • 2024-12-18
    湖南
  • 本文字数:1012 字

    阅读完需:约 3 分钟

screenshot_callback

监听系统截图

注意事项

  • Android 需要获取存储权限才能正常使用

  • 需要真机才能验证截图

Flutter 中使用注意

如果在 flutter 中重写 didChangeAppLifecycleState,其中在三星手机上,侧面截图功能会执行 resumed 生命周期。


case AppLifecycleState.resumed: // 应用程序可见,前台_screenshotCallback.startScreenshot();break;  case AppLifecycleState.paused: // 应用程序不可见,后台_screenshotCallback.stopScreenshot();break;
复制代码


####鸿蒙 OS 代码

截图监听

  /**   * 截图监听   *   * @param listener listener   */  setListener(listener: OnScreenShotListener | null) {this.mListener = listener  }
private onCallback: Callback<photoAccessHelper.ChangeData> = (changeData) => {if (changeData && changeData.type == photoAccessHelper.NotifyType.NOTIFY_ADD && changeData.uris) { Log.i(TAG, `listen receive screenshot->${changeData.uris}`); for (let photo of changeData.uris) {if (photo && photo.indexOf(SCREENSHOT_PREFIX) > 0) { this.mListener && this.mListener.onShot(photo) break} }} }
复制代码

开启截图监听

  /**   * 开启截图监听   *   * @param windowClass windowClass   */  async startListen(windowClass: window.Window | null): Promise<void> {if (!windowClass) {  Log.w(TAG, "startListen window empty")  return}Log.i(TAG, "startListen")abilityAccessCtrl.createAtManager()  .requestPermissionsFromUser(this.uiAbility?.context, ['ohos.permission.READ_IMAGEVIDEO'], async (err: BusinessError, data: PermissionRequestResult) => {if (err) {  Log.e(TAG, `requestPermissionsFromUser fail, err->${JSON.stringify(err)}`);  this.mListener && this.mListener.onScreenCapturedWithDeniedPermission()} else {  Log.i(TAG, `requestPermissionsFromUser succ->${data?.permissions?.toString()}}`);  this.phAccessHelper?.registerChange(photoAccessHelper.DefaultChangeUri.DEFAULT_PHOTO_URI, true, this.onCallback);}  });  }
复制代码

停止截图监听

  /**   * 停止截图监听   */  stopListen(): void {Log.i(TAG, "startListen")this.phAccessHelper?.unRegisterChange(photoAccessHelper.DefaultChangeUri.DEFAULT_PHOTO_URI, this.onCallback);  }}
复制代码


用户头像

flfljh

关注

还未添加个人签名 2024-10-29 加入

还未添加个人简介

评论

发布
暂无评论
Flutter OHOS fluttertpc_screenshot_callback_flfljh_InfoQ写作社区