首页 > 其他分享 >Flutter OHOS fluttertpc_screenshot_callback

Flutter OHOS fluttertpc_screenshot_callback

时间:2024-12-18 09:32:11浏览次数:3  
标签:TAG 截图 Log 监听 callback fluttertpc && changeData Flutter

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);
  }
}

标签:TAG,截图,Log,监听,callback,fluttertpc,&&,changeData,Flutter
From: https://www.cnblogs.com/hongmengos/p/18613897

相关文章

  • Flutter OHOS fluttertpc_device_util
    fluttertpc_device_util鸿蒙设备工具类Flutter代码调用创建通道staticconstMethodChannel_channel=constMethodChannel('device_util');获取versionname///TheversionnameofthisapplicationstaticFuture<StringgetversionNameasync{finalString......
  • Flutter OHOS flutter_native_image
    flutter_native_image原生Flutter图片工具此插件旨在提供原生工具来调整图像大小并通过压缩降低其质量。代码有点粗糙(尤其是iOS部分),但它可以满足我的需求,并且从未崩溃过。如果您愿意,请随意改进它。用法安装在依赖项下的pubspec.yaml中添加以下几行flutter_native_imag......
  • Flutter OHOS flutter_gpu_image(图片视频添加滤镜)
    GPUImageforFlutterFlutter中相机、照片、视频添加各种滤镜效果。本地环境[✓]Flutter(Channelstable,3.0.0,onmacOS12.3.121E258darwin-x64,localezh-Hans-CN)[✓]AndroidtoolchaindevelopforAndroiddevices(AndroidSDKversion33.0.0-rc1)[✓]Xcod......
  • 鸿蒙Flutter怎样调试dart代码
    鸿蒙Flutter怎么样调试dart代码ets代码使用DevEco-Studio进行调试。dart代码可以使用vscode和AndroidStudio进行调试。flutter鸿蒙化版本调试时,需要加上参数,如:--local-engine=/Users/xxx/ohos/engine/src/out/ohos_debug_unopt_arm64使用vscode调试dart代......
  • 鸿蒙Flutter性能调优之性能分析定界
    鸿蒙Flutter性能调优之性能分析定界flutter鸿蒙化的工程,也可以使用devtools对Dart代码进行调试.前置条件OpenHarmonyNext系统前台运行Flutter页面分析工具DevEcoStudioProfilerSmartPerfFlutter线程介绍Flutter使用多个线程来完成其必要的工作,图层中仅展示了其中两......
  • 鸿蒙Flutter环境相关问题解决方法
    鸿蒙Flutter环境相关问题建议使用的开发工具版本flutter3.7.12-ohos版本python3.8-python3.11java17node18ohpm1.6+HamonyOSSDKapi11Xcode14.3断网环境flutterpubget执行失败解决方案:加上--offline参数,完整命令flutterpubget--offlinemac环境releas......
  • harmony_flutter_udid
    harmony_flutter获取udidUDID说明:在恢复出厂设置后,UDID(唯一设备标识符)可能会发生变化!另外,如果设备通过OTA(在线更新)升级到了Android8.0,并且应用程序被重新安装了,由于Android8.0的安全性更改,UDID也可能会改变。对于已经获取root权限或越狱的设备,其ID是可以被更改的,请注意这一点......
  • harmony_flutter_FlutterEngineGroup
    harmony_flutter_FlutterEngineGroup介绍1.EntryAbility修改为继承自UIAbilityexportdefaultclassEntryAbilityextendsUIAbilityimplementsExclusiveAppComponent<UIAbility>{detachFromFlutterEngine():void{//thrownewError('Methodnotimplem......
  • flutter_ohos_5
    ohos开发鸿蒙(基于5.0.0版本)原始仓来源:https://github.com/flutter/flutter1.仓库说明本仓库是基于FlutterSDK对于OpenHarmony平台的兼容拓展,可支持IDE或者终端使用FlutterTools指令编译和构建OpenHarmony应用程序。2.环境依赖说明:1.FlutterTools指令目前已支持在Linux......
  • Flutter OHOS harmony_fluwx 集成微信服务(二)
    harmony_fluwx集成微信服务(2)fluwx链接:https://gitee.com/almost777/fluwx接入功能分享图片,文本,音乐,视频等。支持分享到会话,朋友圈以及收藏.微信支付.在微信登录时,获取AuthCode.拉起小程序.订阅消息.打开微信.从微信标签打开应用初始化注册WxAPIregisterWxApi(ap......