安卓10后如何开发文件管理器

随着安卓10版本的发布,相比之前的版本,文件管理器的使用和开发产生了一些变化。本文将介绍安卓10后如何开发文件管理器,包括其原理和详细介绍。

1.原理

在安卓10中,Google引入了存储访问框架(SAF),该框架提供了一个标准化的API,用于访问各种不同的存储提供程序,如设备存储和云服务。文件管理器应该使用存储访问框架来向用户呈现他们的文件,并进行文件的管理和操作。

使用存储访问框架,开发人员可以创建Storage Access Framework(SAF)指定的文档提供程序,使其他应用程序或用户可以从中获取或保存文档。文档提供程序必须符合一组标准接口约定,以便与文件选择器对话框和系统文件管理器等框架组件交互。以下是文档提供程序的基本构成:

1. 根:一种文档对象,它是整个存储系统的起点。

2. 文档:一种文档对象,它是用户和其他应用程序交互的主要工具。

3. 目录:一种文档对象,它是文档以及其他目录的容器。

文档提供程序必须实现以下接口:

1. DocumentsProvider:用于提供整个文档集合的根目录

2. Document:用于表示每个单独的文档或目录。

在此基础上,我们可以通过实现DocumentsProvider接口来创建文档提供程序,以便在Android系统的文件管理器和其他应用程序中使用。

2.详细介绍

以下是开发文件管理器的详细步骤:

## 步骤一:创建DocumentsProvider

创建DocumentsProvider类,对根目录的访问和返回文档进行管理。这里实现的DocumentsProvider必须要实现以下方法:

```java

public final Cursor query(...) {...}

public final int update(...) {...}

public final String getType(...) {...}

public final Uri insert(...) {...}

public final int delete(...) {...}

public final ParcelFileDescriptor openDocument(...) throws FileNotFoundException {...}

```

## 步骤二:添加Metadata信息

在DocumentsProvider中添加Metadata信息,包括根目录和文档,以便在使用文件选择器时显示。

```java

android:name=".MyDocumentsProvider"

android:authorities="com.mycompany.sample.documents"

android:exported="true"

android:grantUriPermissions="true"

android:permission="android.permission.MANAGE_DOCUMENTS">

android:name="android.provider.extra.LOCAL_ONLY"

android:value="true" />

android:name="android.support.FILE_PROVIDER_PATHS"

android:resource="@xml/provider_paths" />

```

## 步骤三:定义根目录和文档

在DocumentsProvider中定义根目录和文档,用于管理和操作文件。

```java

@Override

public Cursor queryRoots(String[] projection) throws FileNotFoundException {

MatrixCursor result = new MatrixCursor(projection != null ? projection :

DEFAULT_ROOT_PROJECTION);

MatrixCursor.RowBuilder row = result.newRow();

...

return result;

}

@Override

public Cursor queryChildDocuments(String parentDocumentId, String[] projection, String sortOrder) throws FileNotFoundException {

MatrixCursor result = new MatrixCursor(projection != null ? projection :

DEFAULT_DOCUMENT_PROJECTION);

MatrixCursor.RowBuilder row = result.newRow();

...

return result;

}

```

## 步骤四:实现文件操作

在DocumentsProvider中实现文件操作,包括文件创建、删除、重命名、移动等。

```java

@Override

public String createDocument(String parentDocumentId, String mimeType, String displayName) throws FileNotFoundException {

...

}

@Override

public void deleteDocument(String documentId) throws FileNotFoundException {

...

}

@Override

public String renameDocument(String documentId, String displayName) throws FileNotFoundException {

...

}

@Override

public void moveDocument(String documentId, String newParentDocumentId) throws FileNotFoundException {

...

}

```

## 步骤五:添加文件权限

添加文件权限,对外提供文件操作的访问。

```xml

android:name="com.mycompany.sample.documents.PERMISSION"

android:protectionLevel="signature" />

```

通过以上步骤,我们就实现了一个基本的文件管理器。在实际应用中,还可以添加更多的功能和特性,如文件搜索、排序、筛选等。

总结

在安卓10版本中,文件管理器的开发原理和方法发生了改变。使用存储访问框架和DocumentsProvider接口,开发人员可以创建一个完整的文件管理器应用程序,从而实现文件的管理和操作。但是,具体实现需要注意许多细节和技巧,仅靠这篇文章可能难以完全掌握。如果您对此有所兴趣,可以进一步查阅相关的开发文档或学习更多的Android开发知识。


相关知识:
pda安卓设备应用开发
PDA(Personal Digital Assistant) 是一种便携式计算机设备,主要用于管理个人信息、日程安排、多媒体娱乐等功能。而在现今移动互联网的浪潮中,PDA已经被更新换代成为更为强大的智能手机。而安卓设备则是智能手机中最为流行的操作系统之一
2023-05-23
oggle安卓开发
Google安卓开发基础介绍Google安卓是一款基于Linux系统的开源移动操作系统,它由Google开发和维护,于2008年上市。目前,Google安卓已经成为市场上最受欢迎的移动操作系统之一,因为它可以运行在各种不同的设备上,包括智能手机、平板电脑、
2023-05-23
native安卓开发环境安装
Android Native开发即使用C/C++语言开发Android应用程序,需要在开发环境中设置相关的开发参数和环境变量,同时也需要安装一些必备的开发工具才能正常进行开发。下面详细介绍如何安装Android Native开发环境。1. 安装Java J
2023-05-23
java平台开发安卓系统吗
Java平台是一种广泛使用的编程语言和计算机技术平台,可以用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序和移动应用程序。而Android系统是一种基于Linux内核的开源移动操作系统,也是目前市场占有率最高的手机操作系统之一。在Android
2023-05-23
江苏安卓app开发报价
江苏安卓app开发的报价取决于多个因素,包括但不限于以下几个方面:1. 功能需求:不同的app功能需求不同,有些需求需要定制化开发,有些需求是基于现有的开源库和组件拼装而成。如果功能需求比较复杂,开发难度高,报价相应也会高一些。2. 设计需求:设计是app
2023-04-28
安卓一键制作属于您自己的app
安卓一键制作属于您自己的App是指借助工具或平台快速、简便地创建出属于你自己的安卓应用程序。对于没有编程经验的人来说,这种方法可以快速上手,节约时间和成本,实现个性化需求。本文将为您介绍一键式创建安卓App的原理和详细介绍。一、原理在一键式创建安卓App的
2023-04-28
安卓app开发方式富民
安卓App开发是一种富民的方式,因为它可以帮助人们获得更多的收入。以下是安卓App开发的一些原理和详细介绍:1. 安卓开发的主要语言是Java。Java是一种很流行的编程语言,它可以帮助开发者快速实现各种功能,如用户界面、网络通讯、数据存储等。2. 安卓开
2023-04-28
安卓app开发工作室
安卓App开发工作室(原理及详细介绍)安卓App开发工作室通常指代谷歌推出的官方集成开发环境(IDE),即Android Studio。它基于IntelliJ IDEA(一款非常强大的Java IDE)开发,专门为安卓应用程序开发者打造,提供了一系列功能来
2023-04-28
北京安卓app开发公司哪家强一点
北京有很多安卓app开发公司,每家公司的实力各有千秋。以下是几家在业内口碑比较不错的安卓app开发公司,供参考:1. 北京北信源软件集团有限公司:成立于2000年,是中国领先的软件企业之一,主要业务包括移动应用开发、智能硬件、IT解决方案等。北信源在移动应
2023-04-28
关于安卓app的开发环境
安卓应用程序开发环境一般包括以下几个组件:1. Java开发工具包(JDK):安卓应用程序使用Java编程语言编写,因此需要安装JDK。2. 安卓SDK:安卓软件开发工具包是一组开源的开发工具,提供了编写,编译和调试安卓应用程序的工具。3. Eclipse
2023-04-28
java转安卓app开发
Java转安卓App开发可以使用多种工具,比较常用的工具是Android Studio和React Native。Android Studio是一个官方的安卓开发工具,可用于开发任何类型的安卓应用程序,包括游戏、企业移动应用程序、多媒体应用程序等。使用An
2023-04-28
app制作软件安卓版
App制作软件是一种辅助开发者快速构建移动应用的工具。以下是一些常用的App制作软件和它们的原理或详细介绍:1. AppInstitute:该软件提供的是一套易于操作的自定义模板,开发者可以通过拖放方式将自己的想法实现并且不需要编写任何代码。2. Appy
2023-04-28
©2015-2023 安卓益APP Anzhuoe.com 蜀ICP备17007734号-1