用于旧版android sdk的Flutter permission_handler包

jfewjypa  于 2023-01-21  发布在  Flutter
关注(0)|答案(1)|浏览(249)

目前我正在flutter上工作,从服务器下载视频到用户的设备,如udemy,这样他们就可以下载和观看视频。它在调试模式下工作正常,但当我在配置文件模式下运行它不工作。我想我没有请求权限,这可能是它不工作的原因。为了测试这一点,我添加了permission_handler包,但它给我这个错误

C:\src\flutter\.pub-cache\hosted\pub.dartlang.org\permission_handler_android-10.2.0\android\src\main\java\com\baseflow\permissionhandler\PermissionManager.java:469: error: cannot find symbol
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {

问题是我们不能升级我们的sdk,因为我们需要更低的sdk为我们的目标用户。我试图找出是否有任何方法,我们可以要求存储权限,无论是没有permission_handler或任何工作周围的相同包。
先谢了。

mzsu5hc0

mzsu5hc01#

我不能确定,但我相信这是build.gradle文件中的compileSdkVersion太低的问题。
开发人员通常会假设应用必须编译到最低的通用目标,但通常应将其设置为尽可能高的版本。然后TargetSdkVersion会设置为您的“最低”目标应用版本。这样,较新的设备可以访问较新的Android API功能,而较旧的设备可以使用较旧的API功能。
在实践中,这意味着旧版Android构建不会显示权限请求提示,并且在使用permission_handler时将假定为 true
这个github问题提到了一个类似的错误,您可以通过更改CompileSdkVersion来解决:https://github.com/Baseflow/flutter-permission-handler/issues/685
此SO答案解释了compileSdkVersion与build.gradle中其他Sdk版本属性之间的差异:What is the difference between compileSdkVersion and targetSdkVersion?

相关问题