Flutter permission_handler权限弹窗显示错误应用名WPS Office问题
Flutter权限弹窗应用名显示异常修复方案
问题背景
- 业务场景:基于Flutter开发,使用
permission_handler插件申请图库、媒体访问权限,实现图片上传功能 - 已完成配置:
- AndroidManifest.xml中已配置
android:name="DOR"、android:label="DOR" - build.gradle中配置的应用名同样为DOR
- AndroidManifest.xml中已配置
- 异常表现:系统权限弹窗中,发起权限请求的应用名显示为WPS Office,和预期配置的DOR不一致
排查解决步骤
- 第一步:确认Manifest配置路径正确
绝大多数配置不生效问题都是改错了文件,你需要修改的是android/app/src/main/AndroidManifest.xml路径下的文件,确认<application>根节点的android:label属性值为DOR,不要误改activity节点、或者debug/profile目录下的Manifest文件。 - 第二步:彻底卸载设备相关应用重装
出现其他应用名最常见的原因是包名冲突:你当前调试用的包名和设备上已安装的WPS(尤其是修改版、渠道定制版WPS)包名重复,系统缓存了对应包名的应用信息。先把设备上当前的调试包、所有WPS相关的测试/修改版本全部卸载,清除系统桌面缓存后重新运行Flutter项目即可。 - 第三步:排查第三方SDK权限代理问题
如果你的项目接入了WPS文档预览、文件选择类SDK,这类SDK通常会封装自己的权限申请逻辑,代应用发起权限请求,就会显示SDK所属的应用名。这种情况要么在SDK初始化时传入自定义应用名参数,要么绕过SDK的权限封装,自己用permission_handler单独申请媒体权限后再调用SDK能力。 - 第四步:修正高版本Android权限声明
如果是在Android 13及以上版本设备测试,不要用旧版的READ_EXTERNAL_STORAGE存储权限,需要在Manifest中声明对应细分媒体权限,避免兼容模式下的权限归属识别异常:<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> - 第五步:清理全量构建缓存
执行以下命令清理所有构建缓存后重新打包,避免旧构建产物的配置残留:flutter clean flutter pub get cd android && ./gradlew clean
内容的提问来源于stack exchange,提问作者rameez khan
相关产品推荐
相关产品推荐

