搜索插件、代码仓与 APP 分类

插件详情v2.1.2

android_file_picker

文件选择插件的 Android 实现,支持文件选择、保存以及存储访问框架 (SAF) URI 授予。

Android
近 30 天下载
123万
喜欢数
1
Pub 分数
150

安装插件

flutter pub add android_file_picker

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个 Flutter 插件,提供 Android 特定的文件选择、保存和存储访问框架(SAF)URI 授予权限功能。它允许用户通过原生 Android 文件选择器选择文件和目录,使用 SAF 安全管理文件访问,并以正确权限保存文件。作为更广泛的 file_picker 插件的实现,它确保与 Android 存储模型和现代安全实践的兼容性。适用于需要在 Android 设备上进行强大文件操作的应用程序。

适合场景

  • 从设备存储中选择文件
  • 使用 SAF 保存文件
  • 通过 URI 授予临时文件访问权限
  • 与 Android 存储系统的集成
  • 处理大文件传输
  • 支持外部存储设备

主要特点

  • 仅限 Android 的文件选择
  • SAF URI 授予权限支持
  • 安全的文件访问管理
  • 与原生 Android 文件选择器集成
  • 文件保存与权限处理
  • 与 file_picker 配合使用时的跨平台一致性

适合对象

  • 面向 Android 的 Flutter 应用
  • 需要安全文件访问的应用程序
  • 使用 SAF 进行存储的开发者
  • 移动应用中的文件管理功能
  • 需要外部存储支持的应用程序

使用建议

  • 仅限 Android 平台
  • 需要正确的清单权限
  • 依赖于父级 file_picker 包
  • 可能需要额外的运行时权限检查
  • 不适用于 iOS 或 Web
  • SAF 行为在不同 Android 版本中有所差异

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

File Picker

pub package CI pipeline status GitHub issues License Awesome Flutter

File Picker

A Flutter plugin that lets you use the native file explorer to pick single or multiple files, with extension filtering, directory selection, and save-file dialogs, across Android, iOS, Linux, macOS, Windows, and Web.

This repository is a Melos workspace hosting file_picker as a federated plugin: a single cross-platform API package on top of one implementation package per platform, all versioned and published independently.

Packages

Package Pub Description
file_picker pub The main package. Add this to your app, it pulls in the right platform implementation automatically.
file_picker_platform_interface pub The shared interface and data contracts (PlatformFile, FileType, platform option classes) every implementation builds on.
file_picker_darwin pub iOS and macOS implementation.
android_file_picker pub Android implementation, including Storage Access Framework (SAF) support.
file_picker_linux pub Linux implementation, using GTK3 and XDG Desktop Portals.
windows_file_picker pub Windows implementation, using the Win32 COM APIs.
file_picker_web pub Web implementation, including Wasm compilation support.

Almost all apps should only ever depend on file_picker directly. The platform packages are pulled in transitively and registered automatically by Flutter's plugin system; you only reach for one of them directly if you need a platform-specific API that isn't exposed on the shared facade (for example FilePickerDarwin.skipEntitlementsChecks() on macOS).

Quick start

dependencies:
  file_picker: ^13.0.0
import 'package:file_picker/file_picker.dart';

final file = await FilePicker.pickFile();

if (file != null) {
  print(file.name);
  print(await file.length()); // Returns Future<int?> (or use file.lengthSync())
}

See packages/file_picker/README.md for the full feature list, platform compatibility chart, and more usage examples (multiple files, extension filters, directory picking, save-file dialogs).

Migration

  • Upgrading to v13? See the Migrating to v13 Guide for details on PlatformFile.length() returning Future<int?> and the removal of legacy v12-deprecated parameters.
  • Upgrading from pre-v12? See the Migrating to v12 Guide for the federated architecture changes (FilePicker.pickFiles() returning List<PlatformFile>, platform options, and streaming).

Documentation

Contributing

Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request, it covers testing requirements, versioning, and changelog conventions for this workspace.

To work on this repository locally:

dart pub global activate melos
melos bootstrap
melos run analyze   # flutter analyze across every package
melos run test       # flutter test across every package

Each package keeps its own pubspec.yaml and CHANGELOG.md and is released independently, only the package(s) you actually changed need a version bump.

Credits

file_picker was created and maintained by Miguel Ruivo, starting in 2018, growing it from a single Android/iOS plugin into the federated, cross-platform package it is today. This repository continues that work under new ownership, built entirely on the foundation of his years of effort.

Thank you, Miguel.

License

MIT, see LICENSE. Every package in this repository is released under the same license.

所属分类

依赖

依赖清单 3 项

源码仓库

使用此插件的项目

暂无相关数据。

所在榜单