Android11如何使用文件选择器?
创始人
2024-08-20 11:00:41
0

在Android 11中,FileProvider已经被替代为了DocumentProvider。因此,我们需要用SAF(Storage Access Framework)来实现新的文件选择器。SAF允许用户授权访问外部存储设备中的文件和目录,使得开发人员可以在应用程序中访问这些文件和目录。

以下是使用SAF实现文件选择器的示例代码:

1.添加依赖项:

dependencies {
    implementation 'com.android.support:appcompat-v7:30.0.0'
    implementation 'com.android.support:design:30.0.0'
}

2.在AndroidManifest.xml文件中添加以下内容:


3.在Activity中创建变量和常量:

private static final int READ_REQUEST_CODE = 42;
private static final String MIME_TYPE_IMAGE = "image/*";

4.创建打开文件选择器对话框的方法:

public void openFileSelector() {
    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.setType(MIME_TYPE_IMAGE);
    startActivityForResult(intent, READ_REQUEST_CODE);
}

5.在onActivityResult中处理返回的数据:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
    if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
        Uri uri = null;
        if (resultData != null) {
            uri = resultData.getData();
            Log.i(TAG, "Uri: " + uri.toString());
            // Do something with the file here
        }
    }
}

6.现在,当用户点击打开文件选择器按钮时,会打开文件选择器对话框。在选择文件后,onActivityResult方法将自动调用,并返回用户选择的文件的URI。您可以使用这个URI来读取或处理选择的文件。

注意事项: 1.在使用SAF时,您的应用程序需要获取外部存储权限。 2.如果您想让用户选择文件和目录,可以使用

相关内容

热门资讯

黑科技肯定!德扑之星辅牌器使用... 黑科技肯定!德扑之星辅牌器使用方法(aapokerai辅助)原先存在有挂(有挂方式)-哔哩哔哩是一款...
黑科技实锤!aapoker透视... 黑科技实锤!aapoker透视辅助(aapoker辅助工具ai)竟然有挂(有挂教程)-哔哩哔哩1)a...
黑科技好友房!约局互娱辅助(w... 黑科技好友房!约局互娱辅助(wpk到底有没有外挂)真是有挂(证实有挂)-哔哩哔哩,您好,wpk到底有...
黑科技存在!聚星扑克德州有假(... 黑科技存在!聚星扑克德州有假(微扑克有挂么)原本是有挂(有挂教程)-哔哩哔哩1、在微扑克有挂么ai机...
黑科技挂!鱼扑克软件辅助(德扑... 黑科技挂!鱼扑克软件辅助(德扑ai智能系统)本来真的有挂(有挂功能)-哔哩哔哩是一款可以让一直输的玩...
黑科技好友房!德扑之星有作弊(... 黑科技好友房!德扑之星有作弊(wepoke辅助插件)本来真的有挂(果真有挂)-哔哩哔哩1、打开德州p...
黑科技玄学!德州ai辅助神器软... 一、德州ai辅助神器软件简介了解软件请加微:136704302德州ai辅助神器软件是一款在线扑克游戏...
黑科技好友!扑克时间后台数据被... 黑科技好友!扑克时间后台数据被攻破(aapoker发牌机制)切实存在有挂(新版有挂)-哔哩哔哩;是一...
黑科技苹果版!德州之星辅助器可... 黑科技苹果版!德州之星辅助器可以用(wepoke黑科技)都是是有挂(有挂秘诀)-哔哩哔哩,您好,we...
黑科技能赢!德扑之星软件有猫腻... 1、黑科技能赢!德扑之星软件有猫腻(线上wpk德州ai机器人)一向是真的有挂(有挂讲解)-哔哩哔哩。...