关于Google Play因未声明的READ_MEDIA_IMAGES/READ_MEDIA_VIDEO权限拒绝Flutter应用的技术求助
Google Play因未声明的READ_MEDIA_IMAGES/READ_MEDIA_VIDEO权限拒绝Flutter应用的技术求助
大家好,我最近在提交Flutter应用到Google Play时遇到了一个棘手的审核问题,实在摸不着头脑,想请教下社区的大佬们:
我的应用在2025年7月15日被拒绝,理由是违反了READ_MEDIA_IMAGES / READ_MEDIA_VIDEO权限的使用规范,提示"权限使用与应用核心目的无直接关联"。政策说明里提到,只有核心用例需要持久访问共享存储中照片和视频的应用才能使用这些权限,但我的应用只需要一次性或偶尔访问媒体文件,完全不需要持久权限。
我已经完成的排查步骤
- ✅ 反复检查了项目的
AndroidManifest.xml,确认没有声明READ_MEDIA_IMAGES或READ_MEDIA_VIDEO这两个权限 - ✅ 仔细研读了Google Play的照片和视频权限政策,确认我的应用场景符合偶尔访问的要求
- ✅ 逐一查看了所有依赖插件的官方文档,没有发现哪个插件明确说明会自动声明这些权限
我的项目依赖列表(已分类整理)
dependencies: flutter: sdk: flutter flutter_localizations: sdk: flutter # Firebase相关 firebase_core: ^3.8.1 firebase_crashlytics: ^4.2.0 firebase_remote_config: ^5.2.0 firebase_analytics: ^11.3.6 # 文件管理(视频/图片等) video_player: ^2.7.1 chewie: ^1.7.1 youtube_player_flutter: ^9.1.1 open_filex: ^4.5.0 file_picker: ^10.2.0 image_cropper: ^9.1.0 image_picker: ^1.1.2 flutter_svg: ^2.0.16 # Web与HTML相关 webview_flutter: ^4.10.0 # html_editor_enhanced: ^2.7.0 html_editor_enhanced: path : ../flutter_test/html-editor-enhanced flutter_html: ^3.0.0-alpha.6 # Websocket与SSE stomp_dart_client: ^2.1.0 flutter_client_sse: ^2.0.3 # 本地通知 flutter_local_notifications: ^19.2.1 # 图表/图形 syncfusion_flutter_charts: ^30.1.37 syncfusion_flutter_calendar: ^30.1.37 syncfusion_flutter_maps: ^30.1.37 graphview: ^1.2.0 # path: '../test_flutter/graphview' # 图标 font_awesome_flutter: ^10.8.0 # 手机联系人 flutter_contacts: ^1.1.9 # 路由与工具类 go_router: ^15.1.2 dartz: ^0.10.1 connectivity_plus: ^6.1.1 uuid: ^4.2.2 flutter_cache_manager: ^3.4.1 flutter_portal: ^1.1.4 any_link_preview: ^3.0.2 auto_size_text: ^3.0.0 easy_date_timeline: ^2.0.6 states_rebuilder: ^6.4.0 device_info_plus: ^11.2.0 shimmer: ^3.0.0 flutter_spinkit: ^5.2.1 overlay_support: ^2.1.0 smooth_page_indicator: ^1.2.0 fluttertoast: ^8.2.8 shared_preferences: ^2.3.3 url_launcher: ^6.3.1 intl: any path_provider: ^2.1.5 get_it: ^8.0.2 dio: ^5.7.0 flutter_bloc: ^9.0.0 equatable: ^2.0.7 flutter_typeahead: ^5.2.0 timeline_tile: ^2.0.0 two_dimensional_scrollables: ^0.3.3 data_table_2: ^2.5.18 speech_to_text: ^7.0.0 avatar_glow: ^3.0.1 math_expressions: ^3.0.0 dev_dependencies: flutter_test: sdk: flutter lints: ^6.0.0 flutter_lints: ^6.0.0 flutter_launcher_icons: ^0.14.3 build_runner: ^2.4.13 go_router_builder: ^3.0.0 flutter_driver: sdk: flutter
我目前的核心疑问
- 我明明没有在
AndroidManifest.xml里声明这两个权限,Google Play为什么还会因为它们拒绝我的应用?是不是某个依赖插件在构建时隐式添加了这些权限? - 我是否需要把
image_picker的使用迁移到Android Photo Picker API,以此来绕过这个权限问题? - 有没有靠谱的方法,可以在提交应用之前,检查最终构建的APK/AAB中是否包含了这些隐藏的权限请求?
内容来源于stack exchange
相关产品推荐
相关产品推荐

