floating_window_helper.dart 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import 'package:get/get.dart';
  2. import 'package:keyboard/widget/platform_util.dart';
  3. import '../plugins/keyboard_android_platform.dart';
  4. /// 悬浮窗工具类
  5. class FloatingWindowHelper {
  6. FloatingWindowHelper._();
  7. /// 是否有悬浮权限
  8. static RxBool hasFloatingWindowPermission = false.obs;
  9. /// 初始化
  10. static void init() {
  11. if (PlatformUtil.isAndroid) {
  12. KeyboardAndroidPlatform.hasFloatingWindowPermission().then((hasPermission) {
  13. hasFloatingWindowPermission.value = hasPermission;
  14. });
  15. }
  16. }
  17. /// 更新权限状态
  18. static void updatePermissionState() {
  19. KeyboardAndroidPlatform.hasFloatingWindowPermission().then((hasPermission) {
  20. hasFloatingWindowPermission.value = hasPermission;
  21. });
  22. }
  23. /// 显示悬浮窗
  24. static void showFloatingBall() {
  25. // 检查是否有悬浮窗权限
  26. KeyboardAndroidPlatform.hasFloatingWindowPermission().then((hasPermission) {
  27. // 有权限,则启动悬浮窗
  28. if (hasPermission) {
  29. KeyboardAndroidPlatform.enableFloatingWindow(true);
  30. }
  31. });
  32. }
  33. }