首页 > 解决方案 > MediaProjection 在 targetSdkVersion 29 时不起作用并关闭应用程序,但适用于 targetSdkVersion 28

问题描述

我是一名颤振开发人员,正在使用这个插件flutter_screen_recording: ^1.1.1开发一个屏幕录制应用程序。将 targetSdkVersion 设置为 28 时效果很好,但 google 的 play store 不支持低于 29。所以我必须将其保持在 29 版本。但问题是当设置为 29 时,我的应用程序关闭并通过以下异常。

原因:java.lang.SecurityException:媒体投影需要 ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION 类型的前台服务

我已经搜索并应用了许多可能的解决方案,但没有得到正确的结果。如果这里有人可以在这方面帮助我,那将对我非常有帮助。十分感谢。

颤振医生

[√] Flutter(Channel stable, 1.22.6, on Microsoft Windows [Version 10.0.19042.867], locale en-US) • Flutter 版本 1.22.6,位于 C:\flutter • 框架修订版 9b2d32b605(3 个月前),2021- 01-22 14:36:39 -0800 • 引擎修订版 75bef9f6c8 • Dart 版本 2.10.1

[√] Android 工具链 - 为 Android 设备开发(Android SDK 版本 29.0.3) • Android SDK 位于 C:\Users\Nayeem\AppData\Local\Android\sdk • 平台 android-30,构建工具 29.0.3 • ANDROID_HOME = C:\Users\Nayeem\AppData\Local\Android\sdk • Java 二进制文件位于:C:\Program Files\Java\jdk-15\bin\java • Java 版本 Java(TM) SE 运行时环境(build 15+36 -1562) • 接受所有Android 许可证。

[!] Android Studio(未安装) • 未找到 Android Studio;从https://developer.android.com/studio/index.html下载 (或访问https://flutter.dev/docs/get-started/install/windows#android-setup了解详细说明)。

[√] VS Code(版本 1.55.1) • C:\Users\Nayeem\AppData\Local\Programs\Microsoft VS Code 的 VS Code • Flutter 扩展版本 3.21.0

[√] 连接设备(1 个可用) • 为 x86 构建的 Android SDK(移动) • emulator-5554 • android-x86 • Android 10 (API 29)(模拟器)

!医生发现 1 类问题。

标签: androidfluttersdkscreen-recordingandroid-mediaprojection

解决方案


推荐阅读