Android 如何管理所有版本中的所有本地存储(主存储、辅助存储、sd卡、usb)

Android 如何管理所有版本中的所有本地存储(主存储、辅助存储、sd卡、usb),android,file,storage,storage-access-framework,documentfile,Android,File,Storage,Storage Access Framework,Documentfile,简介 管理主存储文件+辅助存储文件(仅限本地): 我将列出我已经掌握的所有信息,并希望您对其进行扩展或更正,以便这个问题能够成为一个概述,总结开始使用本地存储之前必须了解的所有主要信息。我相信很多人都在寻找这样一个概览 概述 通常,您有以下存储: 主存储器(始终可直接访问,主要在内部存储器上,但由手机制造商决定) 辅助存储器(android=5可直接访问) 问题1-部分已知✖ 问题2.1——未知✖ 问题2.2-已知✔ 问题2.3-已知✔ 问题3-已知✔ -------------------

简介

管理主存储文件+辅助存储文件(仅限本地): 我将列出我已经掌握的所有信息,并希望您对其进行扩展或更正,以便这个问题能够成为一个概述,总结开始使用本地存储之前必须了解的所有主要信息。我相信很多人都在寻找这样一个概览

概述

通常,您有以下存储:

  • 主存储器(始终可直接访问,主要在内部存储器上,但由手机制造商决定)
  • 辅助存储器(android=5可直接访问)

    • 问题1-部分已知✖
    • 问题2.1——未知✖
    • 问题2.2-已知✔
    • 问题2.3-已知✔
    • 问题3-已知✔
    -------------------------------------


    Android在你被投票否决和被投票否决之前,你可能希望将其改写为Stack Overflow的问答格式(请参阅中的“我可以回答我自己的问题吗?”)。编辑问题并发布一个答案,显示我已经知道的内容。。。
    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
    intent.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
    context.startActivityForResult(intent, 1234);
    
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if (requestCode == 1234)
        {
            if (resultCode == Activity.RESULT_OK)
            {
                // get uri
                Uri treeUri = data.getData();
    
                // persist permissions
                final int takeFlags = data.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
                getContentResolver().takePersistableUriPermission(treeUri, takeFlags);
    
                // remember the uri for having access to the storage
                // ...
            }
            return true;
        }
        return false;
    }