首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Flutter通过"build method“权限被授予,但仍然没有打开多图像选择器...虽然它在"debug and run --release method“中工作...为什么?

Flutter通过"build method“权限被授予,但仍然没有打开多图像选择器...虽然它在"debug and run --release method“中工作...为什么?
EN

Stack Overflow用户
提问于 2020-04-30 03:05:47
回答 1查看 1.1K关注 0票数 0

已添加enter code hereAndroidmanifest.xml所有权限。当我在调试或发布模式下运行应用程序时,这种权限工作得很好,但当我使用"build appbundle“或”build apk“时,生成的应用程序不会打开图像选择器(权限不能按预期工作)

代码语言:javascript
运行
复制
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.viaviaapp.flutter">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

我也尝试过通过"permission_handler“添加运行时权限。实际需要和使用权限的应用程序页面。即使我们不添加运行时权限,“multi_image_picker”插件已经处理了权限,但即使当我使用"build apk“并使用它时,什么都不起作用。

代码语言:javascript
运行
复制
@override
  void initState() {
    super.initState();
    checkPermissions();
  }

checkPermissions() async {
    if (await Permission.storage.request().isUndetermined) {
      Permission.storage.request();
      Permission.camera.request();
    } else if (await Permission.storage.request().isDenied) {
      showDialog(
          context: (context),
          builder: (context) => AlertDialog(
                shape: ContinuousRectangleBorder(
                    borderRadius: BorderRadius.circular(20)),
                content: Text(
                  'viaviaapp requires permissions to storage and camera so that you can post images',
                  style: TextStyle(height: 1.3),
                ),
                actions: <Widget>[
                  FlatButton(
                    onPressed: () async {
                      if (await Permission.storage.request().isGranted) {
                        Navigator.pop(context);
                      } else {
                        Permission.storage.request();
                        Permission.camera.request();
                      }
                    },
                    child: Text("Grant Now"),
                  )
                ],
              ));
    } else if (await Permission.storage.request().isPermanentlyDenied) {
      showDialog(
          context: (context),
          builder: (context) => AlertDialog(
                shape: ContinuousRectangleBorder(
                    borderRadius: BorderRadius.circular(20)),
                content: Text(
                  'You have to grant required permission from the application settings.',
                  style: TextStyle(height: 1.3),
                ),
                actions: <Widget>[
                  FlatButton(
                    onPressed: () async {
                      if (await Permission.storage.request().isGranted) {
                        Navigator.pop(context);
                      } else {
                          openAppSettings();
                      }
                    },
                    child: Text("Open Settings"),
                  )
                ],
              ));
    }
  }
EN

回答 1

Stack Overflow用户

发布于 2021-03-05 22:59:44

它对我很有效

代码语言:javascript
运行
复制
flutter build apk --no-shrink
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61509704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档