gpt4 book ai didi

android - Flutter - Android 在 Release模式下不请求许可 - 自动拒绝

转载 作者:行者123 更新时间:2023-12-04 03:53:00 32 4
gpt4 key购买 nike

在一个星期内阻止自己问这个问题之后,我来了。我一直在努力解决Android的无权限问题。我用 Flutter 开发了这个应用程序,并已将其上传到 Play 商店进行开放测试。但是,在 Release模式下,它从不请求许可。只是从来没有。没有消息或登录控制台/logcat。

我尝试过使用两到三个 flutter 包来实现相同的效果,但都没有用。它在 Debug模式下完美运行,权限弹出窗口出现,您允许它并且功能正常运行。在发布版本的情况下,弹出窗口不会出现。当您检查应用程序的权限设置时,您会看到权限已在 Android 7.0、8.0、10 中的每个设备中每次都被自动拒绝(其他未尝试过)。即使在允许设置权限后,它也不起作用并且权限再次被拒绝。

我用过的代码:

  1. permission包:

    var permissionStatus =
    await Permission.getPermissionsStatus([PermissionName.Storage]);
    print(permissionStatus.toString());
    if (permissionStatus.first.permissionStatus == PermissionStatus.allow) {
    _saveFile();
    } else {
    var permissions =
    await Permission.requestPermissions([PermissionName.Storage]);
    print(permissions.first.permissionStatus.toString());
    if (permissions.first.permissionStatus == PermissionStatus.allow)
    _saveFile();
    else
    Fluttertoast.showToast(
    msg: "Storage permission required to share!",
    toastLength: Toast.LENGTH_LONG,
    gravity: ToastGravity.BOTTOM,
    timeInSecForIosWeb: 2,
    backgroundColor: greyColor,
    textColor: Colors.white,
    fontSize: 16.0);
    }
  2. permission_handler包:

    if (await permissionsService.hasStoragePermission()) {
    print("Saving file");
    _saveFile();
    } else {
    final PermissionHandler _permissionHandler = PermissionHandler();

    var permission =
    Platform.isAndroid ? PermissionGroup.storage : PermissionGroup.photos;
    var result = await _permissionHandler.requestPermissions([permission]);

    if (result[permission] == PermissionStatus.granted)
    _saveFile();
    else
    Fluttertoast.showToast(
    msg: "Storage permission required to share!",
    toastLength: Toast.LENGTH_LONG,
    gravity: ToastGravity.BOTTOM,
    timeInSecForIosWeb: 2,
    backgroundColor: greyColor,
    textColor: Colors.white,
    fontSize: 16.0);

我也尝试过使用权限服务。

我在这里发现了没有答案的类似问题 - Flutter app wont ask for Storage permission in release mode

我的应用已经被 Google Play Store 延迟了 16 天的验证时间,请提供解决方案以避免进一步延迟。不,flutter clean 没有帮助。

编辑 - 在 pub.dev 上搜索更多的权限处理包,我找到了 permission_plugin这也不起作用,同样的问题,但它在 logcat 中给出错误。

错误-

2020-10-02 23:54:44.289 16214-16260/? E/flutter: [ERROR:flutter/lib/ui/ui_dart_state.cc(171)] Unhandled Exception:
MissingPluginException(No implementation found for method check-permissions on channel permissions_plugin)
#0 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:157)
<asynchronous suspension>
#1 PermissionsPlugin.checkPermissions (package:permissions_plugin/permissions_plugin.dart:69)
<asynchronous suspension>
#2 _CertificateState._saveImage (package:app_name/screens/app_screen.dart:211)
<asynchronous suspension>

更新:此错误也与其他权限包一起出现。现在,我相信这是问题的原因。我将分享所需的任何代码。

最佳答案

我通过创建一个新项目并复制其中的代码解决了这个问题。这个建议是在 Official Flutter Github Repo 的类似问题上发现的。我相信发生这种情况是因为如该问题线程中所述,将 channel 从 master 更改为稳定,但再次将其更改回来并不能解决问题。我还查看了与插件异常相关的所有地方,但没有任何答案/解决方案有效。

这个错误/问题确实应该由开发人员关注。

关于android - Flutter - Android 在 Release模式下不请求许可 - 自动拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64170696/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com