Android11-读取所有应用程序的Android/data目录,无需使用legacy-request(用于文件管理器/备份目的)
创始人
2024-08-20 09:30:28
0

在Android 11中,由于安全性更高的存储访问外部(SAF)政策,不再允许应用程序直接访问其他应用程序的数据。取而代之的是,应用程序应该使用以下两种方法之一来获得访问数据的权限:

  1. 使用ContentResolver查询请求

这是访问其他应用程序数据的首选方法。它需要用户明确授予权限。以下代码演示如何使用ContentResolver查询请求读取其他应用程序的Android/data目录:

// Projection to query data directory
final String[] projection = new String[]{
        MediaStore.MediaColumns.DATA,
        MediaStore.MediaColumns.DISPLAY_NAME
};

// Query the SAF tree uri
final Uri uri = DocumentsContract.buildDocumentUri(
        BuildConfig.APPLICATION_ID + ".provider", "files/root");

ContentResolver resolver = getContentResolver();
try (Cursor cursor = resolver.query(uri, projection, null, null)) {
    if (cursor != null) {
        while (cursor.moveToNext()) {
            String path = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA));
            String fileName = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DISPLAY_NAME));
            Log.d(TAG, "Path: " + path + ", File name: " + fileName);
        }
    }
}
  1. 要求用户选择数据目录

如果您的应用程序不使用ContentResolver查询请求或需要更灵活的解决方案,您可以要求用户选择其他应用程序的数据目录。以下代码演示了如何使用SAF Intend让用户选择其他应用程序的数据目录:

// ACTION_OPEN_DOCUMENT_TREE intent
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
        .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION
                | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
                | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
startActivityForResult(intent, REQUEST_CODE_DOCUMENT_TREE);

// onActivityResult method
@Override
protected void onActivityResult(int requestCode, int resultCode,

相关内容

热门资讯

十分钟绝活儿!约战竞技场辅助器... 十分钟绝活儿!约战竞技场辅助器(外挂)竟然有辅助软件(哔哩哔哩)十分钟绝活儿!约战竞技场辅助器(外挂...
第九分钟烘培!凑一桌开挂游戏辅... 第九分钟烘培!凑一桌开挂游戏辅助(外挂)其实是有辅助软件(哔哩哔哩)该软件可以轻松地帮助玩家将凑一桌...
七分钟办法!新海贝之城脚本(外... 七分钟办法!新海贝之城脚本(外挂)总是是真的有辅助技巧(哔哩哔哩)1.新海贝之城脚本 选牌创建新账号...
4分钟指引!杭麻圈辅助工具(外... 4分钟指引!杭麻圈辅助工具(外挂)其实是真的有辅助方法(哔哩哔哩)1、全新机制【杭麻圈辅助工具ai辅...
第5分钟演示!浙江茶园辅助(外... 第5分钟演示!浙江茶园辅助(外挂)都是是真的有辅助app(哔哩哔哩)1、游戏颠覆性的策略玩法,独创攻...
三分钟举措!上饶中至能操控吗(... 三分钟举措!上饶中至能操控吗(外挂)好像一直都是有辅助软件(哔哩哔哩)1、让任何用户在无需上饶中至能...
两分钟法子!新天道能不能开挂(... 两分钟法子!新天道能不能开挂(外挂)总是是有辅助教程(哔哩哔哩)1、让任何用户在无需新天道能不能开挂...
三分钟要领!玖玖互娱辅助工具(... 三分钟要领!玖玖互娱辅助工具(外挂)真是存在有辅助脚本(哔哩哔哩)三分钟要领!玖玖互娱辅助工具(外挂...
8分钟手段!wepoker私人... 8分钟手段!wepoker私人局辅助器(外挂)确实有辅助技巧(哔哩哔哩)运wepoker私人局辅助器...
2分钟步骤!科乐游戏辅助脚本视... 2分钟步骤!科乐游戏辅助脚本视频(外挂)原来是真的有辅助插件(哔哩哔哩)1、任何科乐游戏辅助脚本视频...